Чи можу я перетворити дату iso в мілісекунди? наприклад, я хочу перетворити цей iso
2012-02-10T13:19:11+0000
до мілісекунд.
Тому що я хочу порівняти поточну дату з датою створення. А створена дата - це iso-дата.
Чи можу я перетворити дату iso в мілісекунди? наприклад, я хочу перетворити цей iso
2012-02-10T13:19:11+0000
до мілісекунд.
Тому що я хочу порівняти поточну дату з датою створення. А створена дата - це iso-дата.
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, який виводить лише час 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
Іншим рішенням може бути використання синтаксичного аналізатора об’єктів таким чином:
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 дата = нова дата (рядок_датів); var мілісекунди = date.getTime ();
Це спрацювало для мене!
У випадку, якщо хтось захоче взяти лише Час із дати 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