为什么我的 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
我的客户端使用 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