tabla - ¿Cuál es la forma más simple de reducir una fecha en Javascript en 1 día?
dieta sin azucar menu (6)
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 para ''Ayer''.
Siempre parece tomar más código del necesario cuando hago esto, así que me pregunto si hay una manera simple.
¿Cuál es la forma más simple de hacer esto?
[Editar: para evitar confusiones en una respuesta a continuación, esta es una pregunta de JavaScript , no de Java.]
setDate (dayValue)
dayValue = 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 soluciona su problema (y el mío) parece estar fuera del rango de especificación.
Lo que parece ser necesario son las funciones addDate (), addMonth (), addYear () ...
getDate () - 1 debería hacer el truco
Ejemplo rápido:
var day = new Date( "January 1 2008" );
day.setDate(day.getDate() -1);
alert(day);
var today = new Date();
var yesterday = new Date().setDate(today.getDate() -1);
origDate = new Date();
decrementedDate = new Date( sDate.getTime() - ( 86400 * 1000 ));
console.log(decrementedDate);
var d = new Date();
d.setDate(d.getDate() - 1);
console.log(d);
day.setDate(day.getDate() -1); //will be wrong
esto devolverá el día equivocado. bajo UTC -03: 00, busque
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