Можно ли преобразовать дату iso в миллисекунды? например, я хочу преобразовать это iso
2012-02-10T13:19:11+0000
в миллисекундах.
Потому что я хочу сравнить текущую дату с созданной датой. Дата создания - это iso date.
Можно ли преобразовать дату iso в миллисекунды? например, я хочу преобразовать это iso
2012-02-10T13:19:11+0000
в миллисекундах.
Потому что я хочу сравнить текущую дату с созданной датой. Дата создания - это iso date.
Попробуйте это
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.
Сокращение предыдущих решений -
var myDate = +new Date("2012-02-10T13:19:11+0000");
Он выполняет преобразование типа "на лету" и напрямую выводит дату в миллисекундах.
Другим способом является также использование метода синтаксиса Date util, который выводит время EPOCH в миллисекундах.
var myDate = Date.parse("2012-02-10T13:19:11+0000");
Другой вариант с 2017 года - использовать Date.parse()
. MDN документация указывает, однако, что она ненадежна до ES5.
var date = new Date(); // today date and time in ISO format
var myDate = Date.parse(date);
Подробнее см. fiddle.
Другим возможным решением является сравнение текущей даты с January 1, 1970
, вы можете получить January 1, 1970
на new Date(0)
;
var date = new Date();
var myDate= date - new Date(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);
Да, вы можете сделать это в одной строке
let ms = Date.parse('2019-05-15 07:11:10.673Z');
console.log(ms);//1557904270673