是时间吗?是 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() 指定时区?

有帮助吗?

解决方案

日期.设置时间 预计数量 毫秒 自 1970 年 1 月 1 日起。php的 时间函数 产生的数量 自 1970 年 1 月 1 日起。因此,您可以使用

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

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

其他提示

乘以 1000。JavaScript 期望毫秒,而 PHP 返回秒。

Date.setTime() 需要自 Unix 纪元以来的毫秒数,而 time() 返回自那时以来的秒数。如果不需要绝对精度(考虑到你的方法,我认为不需要),只需将从 time() 获得的值乘以 1000 即可。

编辑:被打两次--D'oh

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top