Qual è il modo più semplice per diminuire una data in Javascript da 1 giorno?
-
09-06-2019 - |
Domanda
Ho bisogno di diminuire di un Javascript data di 1 giorno, in modo che il rollback in mesi/anni correttamente.Cioè, se ho una data di 'Oggi', voglio ottenere la data di 'Ieri'.
Sembra sempre di prendere il codice più che necessario quando faccio questo, quindi mi chiedo se c'è un modo più semplice.
Qual è il modo più semplice di fare questo?
[Edit:Giusto per evitare confusione in una risposta qui sotto, questo è un JavaScript domanda, non una in Java.]
Soluzione
var d = new Date();
d.setDate(d.getDate() - 1);
console.log(d);
Altri suggerimenti
var today = new Date();
var yesterday = new Date().setDate(today.getDate() -1);
day.setDate(day.getDate() -1); //will be wrong
questo restituirà giorno sbagliato.sotto UTC di -03:00, il check per
var d = new Date(2014,9,19);
d.setDate(d.getDate()-1);// will return Oct 17
Miglior uso:
var n = day.getTime();
n -= 86400000;
day = new Date(n); //works fine for everything
getDate()-1
dovrebbe fare il trucco
Esempio veloce:
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
è un numero intero da 1 a 31, che rappresenta il giorno del mese.
da https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/setDate
Il comportamento di risolvere il tuo problema (e la mia) sembra essere fuori specifica gamma.
Ciò che appare necessario sono addDate(), addMonth(), addYear() ...funzioni.
Lavorare con le date in JS può essere un mal di testa.Quindi il modo più semplice è quello di utilizzare moment.js per eventuali operazioni di data.
Per sottrarre un giorno:
const date = moment().subtract(1, 'day')