請注意,如果您使用 DATE_RFC7231 格式(用於 HTTP/1.1),您需要*事先*將 DateTime 物件的時區更改為 GMT,否則您會遇到奇怪的結果,因為此格式*不會*將日期轉換為 GMT。
因此,如果您有一個使用 UTC+01:00 作為其時區的 DateTime 物件,您將在結果日期字串和「正確」日期之間得到 1 小時的差異。
建議用法
<?php
$date_gmt = clone $date;
$date_gmt->setTimezone(new \DateTimeZone('GMT'));
echo $date_gmt->format(DATE_RFC7231);
?>