Tengo un campo en una cuadrícula que contiene fecha/hora y necesito saber la diferencia entre esa fecha y hora actual. ¿Cuál podría ser la mejor manera de hacerlo?¿Cómo restar fecha/hora en javascript?
Respuesta
Esto le dará la diferencia entre dos fechas, en milisegundos
var diff = Math.abs(date1 - date2);
En su ejemplo, sería
var diff = Math.abs(new Date() - compareDate);
Es necesario asegurarse de que compareDate
es un objeto válido Date
.
Algo como esto probablemente va a funcionar para usted
var diff = Math.abs(new Date() - new Date(dateStr.replace(/-/g,'/')));
es decir, girando "2011-02-07 15:13:06"
en new Date('2011/02/07 15:13:06')
, que es un formato que el Date
constructor puede comprender.
esto ignora el manejo DTS para la zona horaria local (funciona bien con UTC) –
en TypeScript Obtengo un error tslint cuando trato de hacer esto: var diff = Math.abs (new Date() - compareDate); – Devid
Puede restar dos objetos de fecha.
var d1 = new Date(); //"now"
var d2 = new Date("2011/02/01") // some date
var diff = Math.abs(d1-d2); // difference in milliseconds
Puede utilizar getTime()
método para convertir el Date
con el número de milisegundos desde el 1 de enero de 1970. A continuación, puede hacer fácil las operaciones aritméticas con las fechas. Por supuesto, puede convertir el número de nuevo a Date
con setTime()
. Ver here un ejemplo.
Si desea obtener una diferencia en el tiempo del reloj de pared, para la zona horaria local y con la conciencia de ahorro de luz diurna.
Date.prototype.diffDays = function (date: Date): number {
var utcThis = Date.UTC(this.getFullYear(), this.getMonth(), this.getDate(), this.getHours(), this.getMinutes(), this.getSeconds(), this.getMilliseconds());
var utcOther = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
return (utcThis - utcOther)/86400000;
};
prueba
it('diffDays - Czech DST', function() {
// expect this to parse as local time
// with Czech calendar DST change happened 2012-03-25 02:00
var pre = new Date('2012/03/24 03:04:05');
var post = new Date('2012/03/27 03:04:05');
// regardless DST, you still wish to see 3 days
expect(pre.diffDays(post)).toEqual(-3);
});
minutos o segundos Diff es de misma manera.
A menos que esté restando fechas en el mismo cliente de navegador y no se preocupe por casos extremos como cambios de horario de verano, probablemente sea mejor que use moment.js que ofrece poderosas API localizadas. Por ejemplo, esto es lo que tengo en mis utils.js:
subtractDates: function(date1, date2) {
return moment.subtract(date1, date2).milliseconds();
},
millisecondsSince: function(dateSince) {
return moment().subtract(dateSince).milliseconds();
},
- 1. ¿Cómo agregar/restar fechas con JavaScript?
- 2. ¿Cómo restar minutos de una fecha en javascript?
- 3. ¿Cómo restar fechas en Java?
- 4. Cómo restar tiempo en MySQL
- 5. ¿Cómo restar años?
- 6. ¿Cómo 'restar' tablas sql?
- 7. JAXB no lanza un error en mal fechaHora valores
- 8. fechas Restar en PHP
- 9. javascript: Tiempo restar y obtener su número de minutos
- 10. Cómo restar números IEEE 754?
- 11. ¿Cómo restar dos fechas en Django/Python?
- 12. Restar matrices
- 13. restar dos veces en pitón
- 14. Restar valores en MySQL Tabla
- 15. ¿Cómo puedo restar horas de una cadena HH: MM AM time en Javascript?
- 16. Restar fechas con Python
- 17. NSDate restar un mes
- 18. ¿Cómo puedo "restar" una tabla de otra?
- 19. ¿Cómo restar un mes del objeto Date?
- 20. Android Java: ¿Cómo restar dos veces?
- 21. Java Glitch? ¿Restar números?
- 22. ¿Cómo restar un día de una fecha?
- 23. ¿Cómo restar una matriz de una matriz?
- 24. SQL Server 2005: cómo restar 6 meses
- 25. ¿Cómo restar 2 horas de la hora local del usuario?
- 26. restar marcas de tiempo
- 27. Restar minutos de NSDate
- 28. Restar n horas de DateTime en Ruby
- 29. Como restar fechas con Python
- 30. ¿Cómo restar una semana de esta fecha en jquery?
¿Cuál es el formato de la fecha/hora? –
se almacena así "2011-02-07 15:13:06" –
Esto no es un duplicado. Tiene una solución diferente y se explica mucho mejor. También tiene un mejor rango de búsqueda. – 3Dom