Как рассчитать время между двумя датами в typescript
Это работает в Javascript
new Date()-new Date("2013-02-20T12:01:04.753Z")
Но в typescript я не могу покоиться двумя новыми датами
Date("2013-02-20T12:01:04.753Z")
Не работает, потому что paremater не соответствует сигнатуре даты
Ответ 1
Используйте метод getTime, чтобы получить время в миллисекундах с 1970-01-01 и вычесть следующие:
var time = new Date().getTime() - new Date("2013-02-20T12:01:04.753Z").getTime();
Ответ 2
Вот как это сделать в typescript:
(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();
Ответ 3
Это не работает, потому что 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"));