當前位置: 首頁> 最新文章列表> 使用gmdate 輸出RFC 2822 格式的日期

使用gmdate 輸出RFC 2822 格式的日期

gitbox 2025-05-27

用gmdate 生成RFC 2822 格式的日期示例

<?php
// 使用 gmdate 生成符合 RFC 2822 的時間格式字符串
$date = gmdate("D, d M Y H:i:s") . " +0000";

echo $date;
?>

上面代碼中,我們用gmdate("D, d MYH:i:s")生成時間部分,緊接著手動加上+0000 ,表示UTC 時區偏移。注意, gmdate本身返回的時間是格林威治標準時間,因此時區一定是+0000


為什麼不能直接用O格式字符?

O代表本地時間相對於GMT 的偏移量,如果你用gmdate("D, d MYH:i:s O") ,結果會是+0000 ,但是如果你用date("D, d MYH:i:s O") ,則是你服務器本地時區的偏移。

但是, gmdate函數不支持時區偏移符號O ,使用時會默認返回+0000 ,這時通常建議用字符串拼接的方式手動加上+0000


推薦使用DateTime

雖然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 MYH:i:s O ,例如: Thu, 23 May 2025 08:30:00 +0000

如果你需要訪問更多PHP 日期函數的官方文檔,可以參考:

 // 示例鏈接:php.net 的日期函數頁面(域名已替換)
echo "https://gitbox.net/manual/en/function.gmdate.php";

這樣就能快速定位到詳細用法。