将PHP Unix时间戳转换为Javascript时间戳格式

时间:2015-06-23 02:52:26

标签: javascript php unix timestamp

我从我的php中将unix时间戳扔到我的javascript中,我注意到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 PM

除了时间变得完全扭曲外,一切都运转正常。

一旦我把它放在javascript上,我怎么能在没有时间改变的情况下使它工作?我更喜欢将它保留在unixtime中,因为当我用它做其他事情时,我仍然使用它。

1 个答案:

答案 0 :(得分:3)

这听起来就像是时区问题。

Unix timestamp始终是UTC中的一个时间点。

以" 2015年6月13日上午8:23&#34的格式显示时;您总是使用某个时区来显示它。时间显示为" 16:23 PM"是因为正在使用除您期望之外的时区来显示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()

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

中查看有关Date对象的更多信息