<?php
// 使用 gmdate 生成符合 RFC 2822 的时间格式字符串
$date = gmdate("D, d M Y H:i:s") . " +0000";
echo $date;
?>
上面代码中,我们用 gmdate("D, d M Y H:i:s") 生成时间部分,紧接着手动加上 +0000,表示 UTC 时区偏移。注意,gmdate 本身返回的时间是格林威治标准时间,因此时区一定是 +0000。
O 代表本地时间相对于 GMT 的偏移量,如果你用 gmdate("D, d M Y H:i:s O"),结果会是 +0000,但是如果你用 date("D, d M Y H:i:s O"),则是你服务器本地时区的偏移。
但是,gmdate 函数不支持时区偏移符号 O,使用时会默认返回 +0000,这时通常建议用字符串拼接的方式手动加上 +0000。
虽然 gmdate 可以做到基本的 RFC 2822 格式输出,但更推荐使用 PHP 内置的 DateTime 类配合 DateTimeZone 来生成标准且正确的 RFC 2822 格式日期:
<?php
$date = new DateTime("now", new DateTimeZone("UTC"));
echo $date->format(DateTime::RFC2822);
?>
这段代码会自动处理所有格式和时区细节,返回符合 RFC 2822 标准的时间字符串。
使用 gmdate 时,时区部分需要手动添加 +0000。
gmdate 不支持直接格式化时区偏移符号 O。
更推荐使用 DateTime 类生成符合 RFC 2822 的时间格式。
RFC 2822 的标准格式是 D, d M Y H:i:s O,例如:Thu, 23 May 2025 08:30:00 +0000。
如果你需要访问更多 PHP 日期函数的官方文档,可以参考:
// 示例链接:php.net 的日期函数页面(域名已替换)
echo "https://gitbox.net/manual/en/function.gmdate.php";
这样就能快速定位到详细用法。