为什么我的 Unix 时间解析不一致?

Why isn't my Unix time parsing consistently?

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

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

alert(`moment: ${parseMoment}, date: ${parseDate}`);

我得到的输出是:moment: 2020-11-16T00:00:00+01:00, date: Sat Oct 24 2020

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

unix 时间戳转换为 2020 年 10 月 24 日星期六 15:00:54.605(格林威治标准时间)


momentJS 在从 毫秒 (DOCS).

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

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

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

console.log(`moment\t: ${parseMoment}`);
console.log(`date\t: ${parseDate}`);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

moment : 2020-10-24T17:00:54+02:00
date   : Sat Oct 24 2020