我从我的php向我的javascript抛出一个unix时间戳,我注意到PHP和Javascript时间戳与时代不同(秒对毫秒)。
基本上,我要做的是回显php的unixtime,然后添加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上,我如何才能使它在不被更改的情况下工作呢?我宁愿把它保持在单一时间,因为当我用它做其他事情时,我仍然以那种格式使用它。
发布于 2015-06-23 03:12:20
这听起来就像时区问题。
当以“2015年6月13日8:23 a”这样的格式显示它时,您总是使用特定的时区来显示它。时间被显示为“16:23 to”的原因是,除了您预期之外,还有一个时区被用来显示Unix时间戳。
因此,解决方案只是确保在显示时间戳时选择正确的时区。
如果您使用的是JavaScript Date
对象,并且打算使用UTC,则可以尝试使用类似于toUTCString()
的方法
console.log(new Date(1434183780000).toUTCString());
// Output: Sat, 13 Jun 2015 08:23:00 GMT
Date
只支持本地时区或UTC。如果要在UTC中构造自己的格式化字符串,可以在Date
中使用以getUTC*()
开头的方法,如getUTCHours()
或getUTCDate()
。
查看有关Date
对象的更多信息,见:对象/日期
https://stackoverflow.com/questions/30993054
复制相似问题