¿Cuál es la forma más sencilla de disminuir una fecha en Javascript en 1 día?
-
09-06-2019 - |
Pregunta
Necesito disminuir una fecha de Javascript en 1 día, para que retroceda correctamente en meses/años.Es decir, si tengo una fecha de "Hoy", quiero obtener la fecha de "Ayer".
Siempre parece que se necesita más código del necesario cuando hago esto, así que me pregunto si hay alguna forma más sencilla.
¿Cuál es la forma más sencilla de hacer esto?
[Editar:Solo para evitar confusión en la respuesta a continuación, esta es una javascript pregunta, no de Java.]
Solución
var d = new Date();
d.setDate(d.getDate() - 1);
console.log(d);
Otros consejos
var today = new Date();
var yesterday = new Date().setDate(today.getDate() -1);
day.setDate(day.getDate() -1); //will be wrong
esto volverá el día equivocado.bajo UTC -03:00, verifique si
var d = new Date(2014,9,19);
d.setDate(d.getDate()-1);// will return Oct 17
Mejor uso:
var n = day.getTime();
n -= 86400000;
day = new Date(n); //works fine for everything
getDate()-1
debería hacer el truco
Ejemplo rápido:
var day = new Date( "January 1 2008" );
day.setDate(day.getDate() -1);
alert(day);
origDate = new Date();
decrementedDate = new Date(origDate.getTime() - (86400 * 1000));
console.log(decrementedDate);
setDate(dayValue)
dayValue
es un número entero del 1 al 31, que representa el día del mes.
de https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/setDate
El comportamiento que resuelve su problema (y el mío) parece estar fuera del rango de especificación.
Lo que parece necesario son addDate(), addMonth(), addYear()...funciones.
Trabajar con fechas en JS puede ser un dolor de cabeza.Así que la forma más sencilla es utilizar momento.js para operaciones de cualquier fecha.
Para restar un día:
const date = moment().subtract(1, 'day')