110

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

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

到毫秒。

因为我想比较当前日期和创建日期。创建日期是一个iso日期。

4

10 回答 10

195

试试这个

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

于 2012-02-10T14:33:46.917 回答
37

先前解决方案的简写是

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

它进行即时类型转换并以毫秒格式直接输出日期。

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

var myDate = Date.parse("2012-02-10T13:19:11+0000");
于 2015-09-16T00:45:29.110 回答
6

2017 年的另一个选择是使用Date.parse(). 然而, MDN 的文档指出,在 ES5 之前它是不可靠的。

var date = new Date(); // today's date and time in ISO format
var myDate = Date.parse(date);

有关更多详细信息,请参见小提琴

于 2017-04-26T12:06:22.243 回答
4

是的,您可以在一行中执行此操作

let ms = Date.parse('2019-05-15 07:11:10.673Z');
console.log(ms);//1557904270673
于 2019-05-15T09:32:11.090 回答
3

另一种可能的解决方案是将当前日期与January 1, 1970, 你可以January 1, 1970得到new Date(0);

var date = new Date(); 
var myDate= date - new Date(0);
于 2017-06-14T07:17:20.253 回答
1

另一种解决方案可能是像这样使用 Number 对象解析器:

let result = Number(new Date("2012-02-10T13:19:11+0000"));
let resultWithGetTime = (new Date("2012-02-10T13:19:11+0000")).getTime();
console.log(result);
console.log(resultWithGetTime);

这就像getTime()Date对象上一样转换为毫秒

于 2018-07-16T12:10:46.287 回答
1
var date = new Date()
console.log(" Date in MS last three digit = "+  date.getMilliseconds())
console.log(" MS = "+ Date.now())

使用它我们可以以毫秒为单位获取日期

于 2019-08-09T09:57:17.373 回答
0

var date = new Date(date_string); var 毫秒 = date.getTime();

这对我有用!

于 2020-02-13T18:40:22.503 回答
0

如果想将 UTC 日期转换为毫秒
语法: Date.UTC(year, month, ?day, ?hours, ?min, ?sec, ?milisec);
例如:
date_in_mili = Date.UTC(2020, 07, 03, 03, 40, 40, 40);
console.log('miliseconds', date_in_mili);

于 2020-07-03T10:31:36.723 回答
0

如果有人只想ISO 日期中获取时间,以下将有所帮助。我正在寻找它,但我找不到它的问题。因此,万一有人看到会有所帮助。

let isoDate = '2020-09-28T15:27:15+05:30';
let result = isoDate.match(/\d\d:\d\d/);
console.log(result[0]);

输出将是 isoDate 的唯一时间,即

15:27
于 2020-09-29T02:59:01.347 回答