Могу ли я преобразовать дату iso в миллисекунды? например, я хочу преобразовать этот iso
2012-02-10T13:19:11+0000
в миллисекунды.
Потому что я хочу сравнить текущую дату с датой создания. Дата создания - это дата iso.
javascript
iso
isodate
Робин Карло Катакутан
источник
источник
1328796537
, но в fb api дата отображается в2012-02-10T13:18:45+0000
date1.getTime() - date2.getTime()
- это все, что вам нужноОтветы:
Попробуй это
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.
источник
var myDate = new Date("2012-02-10T13:19:11+0000");
Сокращение предыдущих решений:
var myDate = +new Date("2012-02-10T13:19:11+0000");
Он выполняет преобразование типа «на лету» и напрямую выводит дату в миллисекундном формате.
Другой способ - использовать метод синтаксического анализа Date util, который выводит только время EPOCH в миллисекундах.
var myDate = Date.parse("2012-02-10T13:19:11+0000");
источник
+new Date()
возвращает1447857230137
время в миллисекундах.const dateMillis = Number(new Date('2017-09-26T20:24:18.801Z'))
ноnew Date('2017-09-26T20:24:18.801Z').getTime()
илиnew Date('2017-09-26T20:24:18.801Z').valueOf()
он даже более удобочитаем.Другой вариант с 2017 года - использовать
Date.parse()
. Однако в документации MDN указывается, что до ES5 он был ненадежным.var date = new Date(); // today's date and time in ISO format var myDate = Date.parse(date);
Смотрите скрипку для более подробной информации.
источник
Другим возможным решением является сравнение текущей даты с
January 1, 1970
, вы можете получитьJanuary 1, 1970
поnew Date(0)
;var date = new Date(); var myDate= date - new Date(0);
источник
Да, вы можете сделать это в одной строке
let ms = Date.parse('2019-05-15 07:11:10.673Z'); console.log(ms);//1557904270673
источник
Другим решением может быть использование парсера объекта 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
объектеисточник
var date = new Date() console.log(" Date in MS last three digit = "+ date.getMilliseconds()) console.log(" MS = "+ Date.now())
Используя это, мы можем получить дату в миллисекундах
источник
var date = новая дата (date_string); var milliseconds = date.getTime ();
Это сработало для меня!
источник
если хотите преобразовать дату UTC в миллисекунды,
синтаксис: Date.UTC (год, месяц,? день,? часы,? min,? sec,? milisec);
например:
date_in_mili = Date.UTC(2020, 07, 03, 03, 40, 40, 40);
console.log('miliseconds', date_in_mili);
источник
В случае, если кто-то хочет получить только время из даты 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
источник