我可以将 iso 日期转换为毫秒吗?例如我想转换这个iso
2012-02-10T13:19:11+0000
到毫秒。
因为我想比较当前日期和创建日期。而创建日期是一个iso日期。
我可以将 iso 日期转换为毫秒吗?例如我想转换这个iso
2012-02-10T13:19:11+0000
到毫秒。
因为我想比较当前日期和创建日期。而创建日期是一个iso日期。
试试这个
var date = new Date("11/21/1987 16:00:00"); // some mock date
var milliseconds = date.getTime();
// This will return you the number of milliseconds
// elapsed from January 1, 1970
// if your date is less than that date, the value will be negative
console.log(milliseconds);
编辑
您提供了 ISO 日期。它也被Date
对象的构造函数接受
var myDate = new Date("2012-02-10T13:19:11+0000");
var result = myDate.getTime();
console.log(result);
编辑
我发现的最好的方法是手动摆脱偏移量。
var myDate = new Date("2012-02-10T13:19:11+0000");
var offset = myDate.getTimezoneOffset() * 60 * 1000;
var withOffset = myDate.getTime();
var withoutOffset = withOffset - offset;
console.log(withOffset);
console.log(withoutOffset);
似乎工作。至于将 ISO 字符串转换为Date
对象的问题,您可以参考提供的链接。
编辑
修复了根据 Prasad19sara 的评论错误转换为毫秒的错误。
先前解决方案的简写是
var myDate = +new Date("2012-02-10T13:19:11+0000");
它进行动态类型转换并以毫秒格式直接输出日期。
另一种方法是使用 Date util 的 parse 方法,它仅以毫秒为单位输出 EPOCH 时间。
var myDate = Date.parse("2012-02-10T13:19:11+0000");
是的,您可以在一行中完成此操作
let ms = Date.parse('2019-05-15 07:11:10.673Z');
console.log(ms);//1557904270673
另一种可能的解决方案是将当前日期与 进行比较January 1, 1970
,您可以January 1, 1970
通过new Date(0)
;
var date = new Date();
var myDate= date - new Date(0);