在 javascript 中将 iso 日期转换为毫秒

2022-08-30 05:03:01

我可以将 iso 日期转换为毫秒吗?例如,我想转换这个iso

2012-02-10T13:19:11+0000

到毫秒。

因为我想比较当前日期与创建日期。创建日期是 iso 日期。


答案 1

试试这个

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的评论修复了错误转换为毫秒的错误。


答案 2

上述解决方案的简写是

var myDate = +new Date("2012-02-10T13:19:11+0000");

它执行动态类型转换,并以毫秒格式直接输出日期。

另一种方法也是使用Date util的解析方法,该方法仅以毫秒为单位输出EPOCH时间。

var myDate = Date.parse("2012-02-10T13:19:11+0000");