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.]

È stato utile?

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')
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top