制作一个从任何服务器获取时间的脚本。就像您建议的 NIST 服务器一样。或使用 timeanddate.com。您可以使用 file_get_contents() (php4.3+) 尝试file_get_contents("http://free.timeanddate.com/clock/i3l84w5k/tt0/tw0/tm3/td2/th1/ta1/tb3")
使用正则表达式来提取时间字符串。然后使用 . 将该时间字符串转换为时间戳strtotime()
。
让此脚本调用 time() 并将返回的时间戳从远程主机的时间(时间戳)中减去。
现在将此偏移量写入缓存、数据库或文件。
并将此脚本放入 cron 作业中。
并编写一个函数 myTime(),从缓存/数据库/文件中读取偏移量并将其添加到 time()。
编辑:我解决了一点:
使用 cronjob 定期运行此脚本:
date_default_timezone_set("UTC");
$html = file_get_contents("http://free.timeanddate.com/clock/i3l84w5k/tt0/tw0/tm3/td2/th1/ta1/tb3");
preg_match('/id=t1>(.*)</U',$html, $matches);
$timeStamp = strtotime($matches[1]);
$offset = time() - intval($timeStamp);
$fh = fopen("time_offset.txt", "w");
fwrite($fh, $offset);
fclose($fh);
使用此函数获取调整后的时间:
function myTime() { return time() - intval(file_get_contents("time_offset.txt")); }