Конвертировать iso date в миллисекунды в javascript

Можно ли преобразовать дату iso в миллисекунды? например, я хочу преобразовать это iso

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

в миллисекундах.

Потому что я хочу сравнить текущую дату с созданной датой. Дата создания - это iso date.

Ответ 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

ИЗМЕНИТЬ

Вы указали дату 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.

Ответ 2

Сокращение предыдущих решений -

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

Он выполняет преобразование типа "на лету" и напрямую выводит дату в миллисекундах.

Другим способом является также использование метода синтаксиса Date util, который выводит время EPOCH в миллисекундах.

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

Ответ 3

Другой вариант с 2017 года - использовать Date.parse(). MDN документация указывает, однако, что она ненадежна до ES5.

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

Подробнее см. fiddle.

Ответ 4

Другим возможным решением является сравнение текущей даты с January 1, 1970, вы можете получить January 1, 1970 на new Date(0);

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

Ответ 5

Другим решением может быть использование анализатора объектов 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);

Ответ 6

Да, вы можете сделать это в одной строке

let ms = Date.parse('2019-05-15 07:11:10.673Z');
console.log(ms);//1557904270673