Mam Javascript obiekt Date równy 00:30, a kiedy robi:Dodawanie 30 minut do chwili obecnej powoduje wrócić 30 minut
date.setMinutes(date.getMinutes() + 30);
powoduje obiektu data do równego 00:00.
Czy ktoś wie, dlaczego tak się dzieje?
Oto gdzie jest używany kod:
for (var i = openTime; i <= closeTime; i.setMinutes(i.getMinutes() + timeIncrement)) {
var time = i.getHours() + (i.getHours() == 0 ? '0' : '') + ':' + i.getMinutes() + (i.getMinutes() == 3 || i.getMinutes() == 0 ? '0' : '');
$(timeClientId).append($('<option />').val(time).text(time));
}
Powyższy skrypt tworzy listę dostępnych czasów od 10:00 aż do 02:00 następnego dnia.
Działa poprawnie, dopóki nie osiągnie północy 00:00 po wielu udanych iteracjach.
Czy ktoś może pomóc?
Dzięki!
ODPOWIEDŹ/ROZWIĄZANIE:
Ten problem był spowodowany letni problemu, więc w sobotę zegary iść do przodu. Z jakiegoś dziwnego powodu, dodając 30 minut do 12:30, resetuje się z powrotem do godziny 12:00 za pomocą .setMinutes(). To utrzymywało go w nieskończonej pętli. Rozwiązaniem było dodanie minut przy użyciu i.setTime (i.getTime() + timeIncrement * 60 * 1000). To rozwiązało problem.
Pozdrawiam za wszystkie odpowiedzi!
Dzięki za odpowiedź. W jaki sposób zwiększysz czas o 30 minut? – Base33
Dodano próbkę. – Karlth
Dzięki. To też jest poprawne. – Base33