PHP gmstrftime()函数

gmstrftime() 函数根据区域设置格式化 GMT/UTC 时间/日期。

注意: gmstrftime() 函数与 strftime() 函数类似,但 gmstrftime() 返回的是格林威治标准时间(GMT)。

语法

gmstrftime(format, timestamp)

参数

参数 描述 可选性
format

指定如何返回结果:

  • %a - 星期几的简写
  • %A - 星期几的全称
  • %b - 月份的简写
  • %B - 月份的全称
  • %c - 首选日期和时间表示法
  • %d - 一个月中的第几天(01-31)
  • %H - 24小时格式(00-23)
  • %I - 12小时格式(01-12)
  • %m - 月份(01-12)
  • %M - 分钟(00-59)
  • %p - 上午或下午
  • %S - 秒(00-59)
  • %x - 日期表示法
  • %X - 时间表示法
  • %Y - 年份(4位数)
  • %Z - 时区名称或缩写
必需
timestamp 规定要格式化的时间戳。默认为当前时间(time())。 可选

返回值

返回根据 format 参数格式化的时间字符串。

示例

示例 1:基本用法

使用 gmstrftime() 函数格式化当前 GMT 时间:

<?php
// 设置区域为中国
setlocale(LC_TIME, "zh_CN");

// 格式化当前 GMT 时间
echo gmstrftime("%Y年%m月%d日 %H:%M:%S");
echo "<br>";
echo gmstrftime("%A, %d %B %Y");
?>

示例 2:指定时间戳

格式化指定的 GMT 时间戳:

<?php
// 设置区域为美国英语
setlocale(LC_TIME, "en_US.UTF-8");

// 指定时间戳(2023年12月25日 00:00:00 GMT)
$timestamp = strtotime("2023-12-25 00:00:00");

// 格式化指定时间戳
echo gmstrftime("%B %d, %Y at %I:%M %p", $timestamp);
echo "<br>";
echo gmstrftime("Short date: %m/%d/%Y", $timestamp);
?>

示例 3:不同格式的输出

展示 gmstrftime() 的不同格式选项:

<?php
// 设置区域
setlocale(LC_TIME, "en_US.UTF-8");

$timestamp = time();

echo "<h4>Various formats of GMT time:</h4>";
echo "Full date and time: " . gmstrftime("%c", $timestamp) . "<br>";
echo "Date only: " . gmstrftime("%x", $timestamp) . "<br>";
echo "Time only: " . gmstrftime("%X", $timestamp) . "<br>";
echo "Day of week: " . gmstrftime("%A", $timestamp) . "<br>";
echo "Month name: " . gmstrftime("%B", $timestamp) . "<br>";
echo "24-hour time: " . gmstrftime("%H:%M:%S", $timestamp) . "<br>";
echo "12-hour time: " . gmstrftime("%I:%M:%S %p", $timestamp) . "<br>";
echo "Timezone: " . gmstrftime("%Z", $timestamp) . "<br>";
?>

示例 4:与 strftime() 的对比

比较 gmstrftime() 和 strftime() 的区别:

<?php
// 设置区域
setlocale(LC_TIME, "en_US.UTF-8");

$timestamp = time();

echo "<h4>Comparison between gmstrftime() and strftime()</h4>";
echo "Local time (strftime): " . strftime("%Y-%m-%d %H:%M:%S", $timestamp) . "<br>";
echo "GMT time (gmstrftime): " . gmstrftime("%Y-%m-%d %H:%M:%S", $timestamp) . "<br>";
echo "<br>";

// 显示时区信息
echo "Local timezone: " . date_default_timezone_get() . "<br>";
echo "GMT timezone: GMT" . "<br>";
?>

技术细节

PHP 版本: PHP 4+
更新日志:
  • PHP 5.1.0:新增 timestamp 参数的多种有效范围
  • PHP 8.1.0:此函数已弃用,推荐使用 date() 或 IntlDateFormatter::format()

弃用警告

从 PHP 8.1.0 开始,gmstrftime() 函数已被弃用。建议使用以下替代方案:

  • gmdate() - 格式化 GMT/UTC 日期/时间
  • DateTime::format() - 面向对象的日期格式化
  • IntlDateFormatter::format() - 国际化日期格式化