<?php
// 當前時間戳對應的 GMT 時間,格式化為 年-月-天 小時:分鐘:秒
echo gmdate('Y-m-d H:i:s');
?>
輸出示例:
2025-05-24 06:30:00
這裡返回的是格林威治時間的當前日期和時間。
gmdate只會返回數字日期和時間部分,月份和星期不會轉換成語言文本。它不會根據系統的locale 設置改變語言。
例如:
<?php
echo gmdate('l, F j, Y'); // 輸出類似:Saturday, May 24, 2025
?>
輸出總是英文的Saturday和May 。
為了輸出本地語言的日期格式,通常用setlocale()設置區域語言環境,然後用strftime()輸出本地化的日期字符串。
但strftime()使用的是服務器本地時間,要結合gmdate()得到的GMT 時間,可以用gmstrftime() (PHP 8.1 起可用),或者手動調整時間戳。
示例:
<?php
// 設置語言環境為中文(中國)
setlocale(LC_TIME, 'zh_CN.UTF-8');
// 使用 gmstrftime 輸出 GMT 時間的本地化天期
echo gmstrftime('%A %e %B %Y', time());
?>
這會輸出中文的星期幾、月份等。例如:
星期六 24 五月 2025
注意: gmstrftime()在較老的PHP 版本中可能不可用,可考慮使用strftime()並手動轉換時間為本地時間。
如果服務器沒有安裝所需的語言包,或者想更靈活地控制語言,可以手動映射英文月份和星期到目標語言。
示例代碼:
<?php
// 獲取 GMT 時間
$timestamp = time();
// 英文星期和月份
$week_en = gmdate('l', $timestamp);
$month_en = gmdate('F', $timestamp);
// 中文星期和月份映射
$week_map = [
'Monday' => '星期一',
'Tuesday' => '星期二',
'Wednesday' => '星期三',
'Thursday' => '星期四',
'Friday' => '星期五',
'Saturday' => '星期六',
'Sunday' => '星期天',
];
$month_map = [
'January' => '一月',
'February' => '二月',
'March' => '三月',
'April' => '四月',
'May' => '五月',
'June' => '六月',
'July' => '七月',
'August' => '八月',
'September' => '九月',
'October' => '十月',
'November' => '十一月',
'December' => '十二月',
];
// 拼接輸出中文格式天期
$day = gmdate('j', $timestamp);
$year = gmdate('Y', $timestamp);
echo $week_map[$week_en] . " " . $day . " " . $month_map[$month_en] . " " . $year;
?>
輸出:
星期六 24 五月 2025
gmdate()用於基於GMT 時間格式化數字日期時間。
它不支持多語言環境的文本輸出。
要實現多語言顯示,可以配合setlocale() + gmstrftime() ,或者自行映射日期文本。
根據實際服務器環境和PHP 版本,選擇合適的方法。
<?php
// 設置語言環境
setlocale(LC_TIME, 'zh_CN.UTF-8');
// 獲取当前 GMT 時間戳
$timestamp = time();
// 使用 gmstrftime 輸出本地化天期(GMT 時間)
echo gmstrftime('%A %e %B %Y', $timestamp);
// 或手動映射(見上面示例)
?>