Это работает в Javascript
new Date()-new Date("2013-02-20T12:01:04.753Z")
Но в машинописном тексте я не могу успокоить две новые даты
Date("2013-02-20T12:01:04.753Z")
Не работает, потому что парматер не соответствует подписи даты
date
typescript
user2025288
источник
источник
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) );
источник