【发布时间】:2017-09-29 15:49:59
【问题描述】:
我有一个网站 (www.Best11.org),我尝试使用 JavaScript 将服务器时间放在页脚中。我以为一切都很好,但有些用户告诉我实际上是当地时间,而不是服务器时间......
这是脚本...
<script type='text/javascript'>
var serverTime = <?php echo time() * 1000; ?>;
var localTime = +Date.now();
var timeDiff = serverTime - localTime;
setInterval(function () {
var realtime = +Date.now() + timeDiff;
var date = new Date(realtime);
// hours part from the timestamp
var hours = date.getHours();
if (hours < 10)
hours = "0" + hours
var minutes = date.getMinutes();
if (minutes < 10)
minutes = "0" + minutes
var seconds = date.getSeconds();
if (seconds < 10)
seconds = "0" + seconds
var formattedTime = hours + ':' + minutes + ':' + seconds;
document.getElementById('clock').innerHTML = formattedTime;
}, 1000);
</script>
怎么了? :|
【问题讨论】:
-
顺便说一句,
Date.now()已经返回一个数字,因此无需使用+运算符。 -
那么……我该怎么办?我真的需要服务器时间...(但不是静态的,用 php...)
-
那么你需要一个基于特定时区的时间吗?
-
是的。欧洲/布加勒斯特。
-
@StephenC UNIX 时间戳(自 1970 年以来的秒数)始终采用 UTC,无论计算机设置为哪个本地时区。这是根据定义。如果硬件时钟在某处使用了错误的时区,这意味着它的时钟只是普遍错误,我认为服务器偏移计算应该可以解决这个问题。
标签: javascript php time server