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