Sto lavorando a un'applicazione in cui tutte le date utilizzate sono date GMT arrotondate, ad es. 2015-10-29T00:00:00.000Z
.Aggiungere giorni a una data senza modificare l'ora GMT
sto usando la funzione seguente per aggiungere giorni a una data:
function addDays(date, days) {
var result = new Date(date);
result.setDate(result.getDate() + days);
return result;
}
Ma, ho appena realizzato che non funziona quando si attraversa l'ora legale il giorno che cambia:
var myDate = new Date('2015-10-24T00:00:00.000Z');
for(i = 0; i<4; i++) {
console.log(JSON.stringify(myDate));
myDate = addDays(myDate, 1);
}
Risulterà :
"2015-10-24T00:00:00.000Z"
"2015-10-25T00:00:00.000Z"
"2015-10-26T01:00:00.000Z"
^
"2015-10-27T01:00:00.000Z"
^
Si noti che le ultime due date non sono più arrotondate.
Qual è il modo corretto per affrontare questo?
Utilizzare http://www.datejs.com è molto potente e gestisce la maggior parte degli scenari. –