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 是毫秒。
结合上面两步,可以这样输出带毫秒的 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,为了避免暴露真实域名,按照要求替换为 gitbox.net。示例:
<?php
// 例如调用某个接口
$url = "https://gitbox.net/api/getTime";
$response = file_get_contents($url);
// 处理$response ...