1

是时间()吗?是 time().substr(microtime(), 2, 2) 吗?是 time().substr(microtime(), 2, 3) 吗?

下面的代码片段有点迷失了。

function updateClock ( ) {
    var timeStamp = <?php echo time().substr(microtime(), 2, 2);?>;
    var currentTime = new Date ( );
    currentTime.setTime( timeStamp );

    ...
    ...
}

我的目标是使用服务器时间并在客户端浏览器窗口上从那里开始计时。上面的代码要么返回当前客户端计算机时间,要么返回 1973 年的某个时间。我想我没有得到正确的 setTime() 时间戳格式?

谢谢!

  • 1000

我试过了,但是在我将 js.php(呈现 javascript 代码)上传到我的服务器后,网页仍然显示我的本地时间。我的服务器与我的时间相差大约 12 小时。我的猜测是 php 是否将客户端时间考虑到运行时间()?我的意思是浏览器确实会向 apache 发送请求时间,对吗?

我从服务器上运行的网页中复制了 time() * 1000 返回值并将其粘贴到本地页面中:

<script type="text/javascript">

var d = new Date();
d.setTime(1233760568000);
document.write(d);

</script>

这确实是我的当地时间。因此猜测。

有没有为 time() 指定时区?

4

3 回答 3

2

Date.setTime预计自 1970-1-1 以来的毫秒数。php 的time 函数产生自 1970-1-1 以来的秒数。因此,您可以只使用

var TimeStamp = <?php echo time()*1000;?>

由于延迟问题(浏览器需要在启动 JavaScript 之前加载整个页面),时间通常会漂移一到几秒钟。

于 2009-02-04T15:09:28.653 回答
1

乘以 1000。JavaScript 需要毫秒,而 PHP 返回秒。

于 2009-02-04T15:09:38.497 回答
0

Date.setTime()想要自 Unix 纪元以来的毫秒数,并time()从那时起返回秒数。如果不需要绝对精度(鉴于您的方法,我认为不需要),只需将您获得的值time()乘以1000.

编辑:被打了两次——D'oh

于 2009-02-04T15:10:32.970 回答