Esto funciona en Javascript
new Date()-new Date("2013-02-20T12:01:04.753Z")
Pero en mecanografiado no puedo descansar dos nuevas fechas
Date("2013-02-20T12:01:04.753Z")
No funciona porque paremater no coincide con la firma de fecha
Esto funciona en Javascript
new Date()-new Date("2013-02-20T12:01:04.753Z")
Pero en mecanografiado no puedo descansar dos nuevas fechas
Date("2013-02-20T12:01:04.753Z")
No funciona porque paremater no coincide con la firma de fecha
Respuestas:
Use el getTimemétodo para obtener el tiempo en milisegundos totales desde 1970-01-01, y reste esos:
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 Date.now()para no crear objetos nuevos innecesariamente
Así es como debe hacerse en mecanografiado:
(new Date()).valueOf() - (new Date("2013-02-20T12:01:04.753Z")).valueOf()
Mejor legibilidad:
var eventStartTime = new Date(event.startTime);
var eventEndTime = new Date(event.endTime);
var duration = eventEndTime.valueOf() - eventStartTime.valueOf();
eventStartTimey eventEndTimeesa duración se escribe como number(es decir, si literalmente toma la tercera línea de código aquí solo, la duración será un número)
No funciona porque se Date - Datebasa exactamente en el tipo de coerción de tipo que TypeScript está diseñado para prevenir.
Hay una solución alternativa para esto usando el +prefijo:
var t = Date.now() - +(new Date("2013-02-20T12:01:04.753Z");
O, si prefiere no usar Date.now():
var t = +(new Date()) - +(new Date("2013-02-20T12:01:04.753Z"));
O vea la respuesta de Siddharth Singh, a continuación, para una solución más elegante usando valueOf()
Para calcular la diferencia tienes que poner el +operador,
de esa manera typescriptconvierte las fechas en números.
+new Date()- +new Date("2013-02-20T12:01:04.753Z")
Desde allí, puede hacer una fórmula para convertir la diferencia en minuteso 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) );