请注意,如果您使用 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);
?>