【发布时间】:2015-05-30 20:56:52
【问题描述】:
我在使用 php 和 js 显示服务器的实际时间时遇到了一些困难。
在服务器端,我有以下 php 代码:
$date = new DateTime();
echo $date->getTimestamp();
在客户端,如果有以下 js 代码更改 div 的内容以显示当前时间:
flag = true;
timer = '';
function clock()
{
if ( flag ) {
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "backend/time_backend.php?action=serverTime", false);
xmlhttp.send();
var stamp = xmlhttp.responseText;
timer = stamp*1000;
}
var d = new Date(timer);
var hours = d.getHours();
var minutes = d.getMinutes();
var seconds = d.getSeconds();
//hours = hours % 12;
//hours = hours ? hours : 12; // the hour ’0' should be ’12'
minutes = minutes < 10 ? '0'+minutes : minutes;
seconds = seconds < 10 ? '0'+seconds : seconds;
var strTime = hours + ':' + minutes + ':' + seconds;
document.getElementById("clock").innerHTML= strTime ;
flag = false;
timer = timer + 1000;
}
window.onload = function() {
setInterval(clock, 1000);
};
只要服务器的时区和我的时区相同,它就可以工作。但是一旦我更改了服务器上的时区,它就不再起作用了。它仍然会显示我的本地客户端时间,尽管服务器上的 bash 命令date 显示正确偏移的时间。
我该如何解决这个问题?我真的需要显示服务器本地时间。
【问题讨论】:
-
这有帮助吗? stackoverflow.com/a/6621656/989920 我认为问题不在于 JS,因为这只是转换服务器提供的时间戳。问题可能出在
time_backend.php中提供时间戳的代码上。
标签: javascript php time