我将 php 中的 unix 时间戳抛出到 javascript 中,我注意到 PHP 和 Javascript 时间戳与纪元不同(秒与毫秒)。
我基本上所做的就是回显 php unix 时间,然后添加 3 个零(简单地将其乘以 1000),但我注意到,当我检查它时,它显示时间偏离了大约 4-8 小时。
我正在使用 canvas.js,我需要使用 unix 时间戳对其进行转换
例如:
1434183780
2015 年 6 月 13 日 8:23
我加了3个零
1434183780000
echo "{ x:".$chartData[$loop]['time']."000 , y:1 }";
发生的事情是时间变成:
2015 年 6 月 13 日 16:23
除了时间完全扭曲之外,一切都工作正常。
一旦我把它放在javascript上,我怎样才能让它工作而不改变时间呢?我更愿意将它保留在 unixtime 中,因为当我用它做其他事情时,我仍然以这种格式使用它。
这听起来就像时区问题。
A Unix时间戳总是一个时间点UTC.
当以“Jun 13 2015 8:23AM”之类的格式显示它时,您始终使用特定时区来显示它。时间显示为“16:23PM”的原因是因为使用了与您预期不同的时区来显示 Unix 时间戳。
因此,解决方案只是确保您在显示时间戳时选择正确的时区。
如果您使用 JavaScriptDate
对象并且您打算使用 UTC,您可以尝试使用类似的方法toUTCString()
:
console.log(new Date(1434183780000).toUTCString());
// Output: Sat, 13 Jun 2015 08:23:00 GMT
Date
仅支持本地时区或 UTC。如果您想构造自己的 UTC 格式字符串,您可以使用中的方法Date
从...开始getUTC*()
, like getUTCHours()
or getUTCDate()
.
查看更多信息Date
对象在:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)