Bac*_*ice 3 javascript timestamp date momentjs
我试图获得与1502755200000
使用 momentjs相同的价值
console.log(Date.UTC(2017, (8-1), 15));//1502755200000
var newDate = moment();
newDate.set('year', 2017);
newDate.set('month', 7); // April
newDate.set('date', 15);
console.log(newDate.format('X'));//1502818350
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试获得毫秒数时,我1502818350
知道如何获得与上述完全相同的时间戳吗?
首先,.format('X')
以秒为单位为您提供 unix 时间戳,而不是毫秒。要获得毫秒,您必须使用.format('x')
(小写 x)。
其次,当您使用 时moment()
,它会为您提供当前本地时间的时刻日期对象,而不是 UTC 时间。因此,当您使用.set('date', 15)
etc对其进行修改时,会将其设置为当地时间2017 年 4 月 15 日。这就是为什么你会得到截然不同的价值。
要获取当前 UTC 时间的时刻日期对象,请使用moment.utc()
.
第三,您创建的 Date 对象将在时间 00:00:00.000,而 moment 对象将位于当前时间。因此,当您设置年/月/日时,时间仍然保持在您创建对象时的状态。您需要将时刻对象的时间设置为 00:00:00.000。
这可以通过.startOf('day')
函数来完成。
综上所述:
console.log(Date.UTC(2017, (8-1), 15)); //1502755200000
var newDate = moment.utc();
newDate.set('year', 2017);
newDate.set('month', 7);
newDate.set('date', 15);
newDate.startOf('day');
console.log(newDate.format('x')); //1502755200000
Run Code Online (Sandbox Code Playgroud)
或者,更短:
var newDate = moment.utc('2017-07-15 00:00:00.000');
Run Code Online (Sandbox Code Playgroud)