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

Convert PHP Unix Timestamp to Javascript Timestamp format

我将一个 unix 时间戳从我的 php 扔到我的 javascript 并且我注意到 PHP 和 Javascript 时间戳是不同的(秒与毫秒)从时代。

我基本上做的是回应 php unixtime 然后添加 3 个零(简单地乘以 1000)但我注意到当我检查它时,它显示时间已关闭大约 4-8 小时。

我正在使用 canvas.js,我需要使用 unix 时间戳对其进行转换

例如:

1434183780

Jun 13 2015 8:23AM

我加3个零

1434183780000

echo "{ x:".$chartData[$loop]['time']."000 , y:1 }";

然后时间变成:

Jun 13 2015 16:23PM

一切正常,只是时间变得完全扭曲。

一旦我把它放在 javascript 上,我怎样才能让它在不改变时间的情况下工作?我更愿意将它保留在 unixtime 中,因为当我用它做其他事情时,我仍然以那种格式使用它。

这听起来像是时区问题。

一个Unix timestamp is always a point in time in UTC.

当以 "Jun 13 2015 8:23AM" 这样的格式显示时,您总是使用特定的时区来显示它。时间显示为“16:23PM”的原因是因为使用了您预期以外的时区来显示 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://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date