Time 为什么不是';我的Unix时间不一致吗?

Time 为什么不是';我的Unix时间不一致吗?,time,momentjs,unix-timestamp,Time,Momentjs,Unix Timestamp,我的客户端使用Date.now()生成时间戳,以毫秒为单位生成unix时间。但是当我稍后在服务器上解析它时,我得到了一个非常不同的日期。我可以复制这种差异。我的代码是: const parseMoment = moment('1603551654605', 'x').format(); const parseDate = new Date(1603551654605).toDateString(); alert(`moment: ${parseMoment}, date: ${parseDat

我的客户端使用Date.now()生成时间戳,以毫秒为单位生成unix时间。但是当我稍后在服务器上解析它时,我得到了一个非常不同的日期。我可以复制这种差异。我的代码是:

const parseMoment = moment('1603551654605', 'x').format();
const parseDate = new Date(1603551654605).toDateString();

alert(`moment: ${parseMoment}, date: ${parseDate}`);
我得到的输出是:
时刻:2020-11-16T00:00:00+01:00,日期:2020年10月24日星期六


正确的输出是力矩给我的,11/16。但我服务器上的时刻实际上给了我不正确的十月日期。我需要可靠地将我的unix时间戳解析回正确的(稍后的)日期。

unix时间戳转换为2020年10月24日星期六15:00:54.605(GMT)


momentJS
毫秒创建日期时不需要任何第二个参数

使用正确的转换,
moment()
new Date()
显示相同的结果:

const parseMoment=moment(1603551654605).format();
const parseDate=新日期(1603551654605).toDateString()
log(`moment\t:${parseMoment}`);
log(`date\t:${parseDate}`)

你认为另一个日期是什么时候?这是该用户的最后一次登录时间,我可以从其他证据看出,该特定用户是昨天/今天登录的,而不是上个月。“x”解析给我的似乎是正确的日期,这可能只是巧合,但“x”计算的工作方式是否会有一些不同,从而更忠实地重建原始日期?我已经使用转换时间戳。因此,我非常确定正确的日期是10月24日。很难说其他时间是从哪里来的,因为我们不知道它是如何保存的。我认为首先捕获最后登录日期的代码有问题,我被与“x”解析器的巧合所愚弄。考虑删除这个问题。您在JSFIDLE中得到了一个错误的结果,因为您使用的是非常旧的版本(2.2.1),在较新的版本(最新的2.29.1)中不会有这种行为。