为什么我从时间戳中得到错误的日期


Why do I get wrong date from timestamp?

我在数据库中存储了776635200时间戳。

当我在php中将其格式化为服务器端的字符串时,我得到以下结果:

var_dump(date("Y-m-d H:i:s", 776635200)); // string(19) 1994-08-12 00:00:00

但当我在JS中的客户端上做同样的操作时,我会得到以下结果:

console.log(new Date(776635200 * 1000)) // Thu Aug 11 1994 23:00:00 GMT+0300 (RTZ 2 (зима))

为什么我会得到不同的结果?

因为在php中它是用不同的时区格式化的,可能是GMT+0400,而在JS中它是使用时区GMT+0300格式化的。

尝试在PHP中对时区进行var转储。

var_dump(date("Y-m-d H:i:s O", 776635200)); 

服务器端从服务器的位置和/或PHP设置获取时区设置,而客户端js从用户计算机中设置的本地时区获取时间设置。可能在不同的时区。