为什么PHP和javascript的时间戳不匹配?


Why don't PHP and Javascript's timestamps match?

如果我做了

alert(new Date(1313690400000))

返回:Thu Aug 18 2011 13:00:00 GMT-0500 (CDT)

然而,

PHP

echo date('Y-m-d H:i:s', 1313690400000);

返回:1951-12-14 05:50:24

JavaScript使用毫秒作为时间戳,而PHP使用秒。结果,你得到非常不同的日期,因为它偏离了1000倍。

删除PHP端三个0:

echo date('Y-m-d H:i:s', 1313690400);

Javascript的Date是从Epoch开始的毫秒,而PHP的Date使用unix的时间戳,以秒为单位。

要在php中得到相同的日期,先除以1000

PHP的日期/时间函数使用纪元以来的秒数,而Javascript使用毫秒数。在你的php函数中:

echo date('Y-m-d', 1313690400000 / 1000);