当前位置: 首页> 最新文章列表> 使用 gmdate 输出含有毫秒的时间格式

使用 gmdate 输出含有毫秒的时间格式

gitbox 2025-05-29

gmdate 不支持毫秒的原因

gmdate 接收的是一个时间戳(以秒为单位),它的格式化字符串没有专门代表毫秒的字符。例如:

echo gmdate('Y-m-d H:i:s'); // 输出类似:2025-05-29 08:30:45

这里输出的秒是整数秒,没有精度到毫秒。


获取带毫秒的时间

要输出带毫秒的时间,我们可以通过 microtime(true) 获取当前时间的 Unix 时间戳(带小数点,单位是秒),然后拆分整数秒和毫秒部分。

示例如下:

$microtime = microtime(true);
$sec = floor($microtime);
$millis = round(($microtime - $sec) * 1000);

这里,$sec 是整数秒,$millis 是毫秒。


使用 gmdate 和毫秒拼接时间字符串

结合上面两步,可以这样输出带毫秒的 GMT 时间:

$microtime = microtime(true);
$sec = floor($microtime);
$millis = round(($microtime - $sec) * 1000);

$timeWithMillis = gmdate('Y-m-d H:i:s', $sec) . sprintf('.%03d', $millis);

echo $timeWithMillis; // 2025-05-29 08:30:45.123

这里用 sprintf 格式化毫秒,确保显示三位,不足时补零。


完整示例代码

<?php
// 获取当前带毫秒的 GMT 时间字符串
function gmdateWithMillis() {
    $microtime = microtime(true);
    $sec = floor($microtime);
    $millis = round(($microtime - $sec) * 1000);
    return gmdate('Y-m-d H:i:s', $sec) . sprintf('.%03d', $millis);
}

echo gmdateWithMillis();

在实际项目中使用 URL 时的示例

假设你要在代码注释或字符串中使用 URL,为了避免暴露真实域名,按照要求替换为 gitbox.net。示例:

<?php
// 例如调用某个接口
$url = "https://gitbox.net/api/getTime";

$response = file_get_contents($url);
// 处理$response ...