Questo funziona in Javascript
new Date()-new Date("2013-02-20T12:01:04.753Z")
Ma in dattiloscritto non posso riposare due nuove date
Date("2013-02-20T12:01:04.753Z")
Non funziona perché paremater non corrisponde alla firma della data
Questo funziona in Javascript
new Date()-new Date("2013-02-20T12:01:04.753Z")
Ma in dattiloscritto non posso riposare due nuove date
Date("2013-02-20T12:01:04.753Z")
Non funziona perché paremater non corrisponde alla firma della data
Risposte:
Utilizzare il getTime
metodo per ottenere il tempo in millisecondi totali dal 1970-01-01 e sottrarre quelli:
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()
uso in Date.now()
modo da non creare nuovi oggetti inutilmente.
Ecco come dovrebbe essere fatto in dattiloscritto:
(new Date()).valueOf() - (new Date("2013-02-20T12:01:04.753Z")).valueOf()
Migliore leggibilità:
var eventStartTime = new Date(event.startTime);
var eventEndTime = new Date(event.endTime);
var duration = eventEndTime.valueOf() - eventStartTime.valueOf();
eventStartTime
e eventEndTime
quella durata viene digitata come un number
(il che significa che se prendi letteralmente la terza riga di codice qui da sola qui la durata sarà un numero)
Non funziona perché Date - Date
si basa esattamente sul tipo di coercizione del tipo che TypeScript è progettato per impedire.
C'è una soluzione alternativa usando il +
prefisso:
var t = Date.now() - +(new Date("2013-02-20T12:01:04.753Z");
Oppure, se preferisci non usare Date.now()
:
var t = +(new Date()) - +(new Date("2013-02-20T12:01:04.753Z"));
O vedi la risposta di Siddharth Singh, sotto, per una soluzione più elegante usando valueOf()
Per calcolare la differenza devi inserire l' +
operatore,
in questo modo typescript
converte le date in numeri.
+new Date()- +new Date("2013-02-20T12:01:04.753Z")
Da lì puoi creare una formula per convertire la differenza in minutes
o 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) );