Pracuję nad aplikacją, w której wszystkie używane daty są okrągłymi datami GMT, np. 2015-10-29T00:00:00.000Z
.Dodaj dni do daty bez zmiany czasu GMT
Używam następujące funkcje, aby dodać dni do daty:
function addDays(date, days) {
var result = new Date(date);
result.setDate(result.getDate() + days);
return result;
}
Ale zdałem sobie sprawę, że nie działa podczas przekraczania czasu letniego zmieniając dni:
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);
}
Wyjścia to :
"2015-10-24T00:00:00.000Z"
"2015-10-25T00:00:00.000Z"
"2015-10-26T01:00:00.000Z"
^
"2015-10-27T01:00:00.000Z"
^
Pamiętaj, że dwie ostatnie daty nie są już okrągłe.
Jaki jest właściwy sposób radzenia sobie z tym?
Użyj http://www.datejs.com jest bardzo wydajny i obsługuje większość, jeśli scenariusze .. –