Это работает в Javascript
new Date()-new Date("2013-02-20T12:01:04.753Z")
Но в машинописном тексте я не могу успокоить две новые даты
Date("2013-02-20T12:01:04.753Z")
Не работает, потому что парматер не соответствует подписи даты
Это работает в Javascript
new Date()-new Date("2013-02-20T12:01:04.753Z")
Но в машинописном тексте я не могу успокоить две новые даты
Date("2013-02-20T12:01:04.753Z")
Не работает, потому что парматер не соответствует подписи даты
Ответы:
Используйте этот getTime
метод, чтобы получить общее время в миллисекундах с 01.01.1970 и вычтите это:
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) );