Це працює в Javascript
new Date()-new Date("2013-02-20T12:01:04.753Z")
Але в машинописі я не можу відпочити два нові дати
Date("2013-02-20T12:01:04.753Z")
Не працюйте, оскільки paremater не відповідає підпису дати
Це працює в Javascript
new Date()-new Date("2013-02-20T12:01:04.753Z")
Але в машинописі я не можу відпочити два нові дати
Date("2013-02-20T12:01:04.753Z")
Не працюйте, оскільки paremater не відповідає підпису дати
Відповіді:
Використовуйте getTimeметод, щоб отримати час у загальних мілісекундах з 1970-01-01, і відніміть такі:
var time = new Date().getTime() - new Date("2013-02-20T12:01:04.753Z").getTime();
new Date(1970, 1, 1, 0, 0, 0, 0).valueOf() // returns 2674800000 new Date(1970, 1, 1, 0, 0, 0, 0).getTime() // returns 2674800000
new Date().getTime()використання, Date.now()щоб ви не робили нових об’єктів без потреби.
Ось як це слід зробити в машинописі:
(new Date()).valueOf() - (new Date("2013-02-20T12:01:04.753Z")).valueOf()
Краща читаність:
var eventStartTime = new Date(event.startTime);
var eventEndTime = new Date(event.endTime);
var duration = eventEndTime.valueOf() - eventStartTime.valueOf();
eventStartTimeта eventEndTimeтривалість набирається як number(тобто якщо ви буквально берете третій рядок коду тут, тут тривалість буде число)
Це не працює, оскільки Date - Dateпокладається саме на тип примусу типу TypeScript, призначений для запобігання.
У цьому вирішенні за допомогою +префікса:
var t = Date.now() - +(new Date("2013-02-20T12:01:04.753Z");
Або, якщо ви не хочете використовувати Date.now():
var t = +(new Date()) - +(new Date("2013-02-20T12:01:04.753Z"));
Або дивіться відповідь Сіддхарта Сінгха нижче для отримання більш елегантного рішення valueOf()
Для того, щоб обчислити різницю, вам потрібно поставити +оператора,
таким чином typescriptперетворюються дати в числа.
+new Date()- +new Date("2013-02-20T12:01:04.753Z")
Звідти ви можете скласти формулу для перетворення різниці в minutesабо hours.
// TypeScript
const today = new Date();
const firstDayOfYear = new Date(today.getFullYear(), 0, 1);
// Explicitly convert Date to Number
const pastDaysOfYear = ( Number(today) - Number(firstDayOfYear) );