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

时间:2012-02-10 14:20:06

标签: javascript iso isodate

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

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

到毫秒。

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

10 个答案:

答案 0 :(得分:95)

试试这个

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

修改

您提供了ISO日期。它也被Date对象

的构造函数接受
var myDate = new Date("2012-02-10T13:19:11+0000");
var result = myDate.getTime();

修改

我发现最好的是手动摆脱偏移量。

var myDate = new Date("2012-02-10T13:19:11+0000");
var offset = myDate.getTimezoneOffset() * 60 * 1000;

var withOffset = myDate.getTime();
var withoutOffset = withOffset - offset;
alert(withOffset);
alert(withoutOffset);

似乎工作。至于将ISO字符串转换为Date对象的问题,您可以参考提供的链接。

修改

根据Prasad19sara的评论修正了错误转换为毫秒的错误。

答案 1 :(得分:22)

以前的解决方案的简写是

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

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

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

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

答案 2 :(得分:4)

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

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

有关详细信息,请参阅fiddle

答案 3 :(得分:2)

另一种可能的解决方案是将当前日期与January 1, 1970进行比较,您可以January 1, 1970获得new Date(0);

var date = new Date(); 
var myDate= date - new Date(0);

答案 4 :(得分:0)

另一个解决方案可能是使用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

答案 5 :(得分:0)

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

RandomType

答案 6 :(得分:0)

var date = new Date()
console.log(" Date in MS last three digit = "+  date.getMilliseconds())
console.log(" MS = "+ Date.now())

使用此方法,我们可以获取以毫秒为单位的日期

答案 7 :(得分:0)

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

这对我有用!

答案 8 :(得分:0)

如果要将UTC日期转换为毫秒
语法:Date.UTC(年,月,日,小时,小时,分钟,秒,分钟);
例如:
date_in_mili = Date.UTC(2020, 07, 03, 03, 40, 40, 40);
console.log('miliseconds', date_in_mili);

答案 9 :(得分: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