Es gibt ein seltsames Verhalten der FireFox 34 setMinutes-Datumsmethode zum Festlegen der 60 Minuten für das Jahr 2008 01. Januar 23 Stunden 00 Minuten 00 Sekunden. Es wird erwartet, dass der Tag zunimmt, aber dies nicht.FireFox 34 setMinutes BUG?
var initDate = [2008, 0, 1];
var d = new Date(initDate[0], initDate[1], initDate[2]);
document.body.innerHTML += d + "<br/>";
d.setHours(23);
d.setMinutes(60);
document.body.innerHTML += d + "<br/>";
Das FireFox 34 Ergebnis:
Tue Jan 01 2008 00:00:00 GMT+0300 (Russia TZ 2 Standard Time)
Tue Jan 01 2008 23:00:00 GMT+0300 (Russia TZ 2 Standard Time)
statt Chrome 39.0.2171.71 m:
Tue Jan 01 2008 00:00:00 GMT+0300 (Russia TZ 2 Standard Time)
Wed Jan 02 2008 01:00:00 GMT+0400 (Russia TZ 2 Daylight Time)
Wenn ich das Jahr 2006 das Ergebnis zu ändern ist ok:
Sun Jan 01 2006 00:00:00 GMT+0300 (Russia TZ 2 Standard Time)
Mon Jan 02 2006 00:00:00 GMT+0300 (Russia TZ 2 Standard Time)
http://jsfiddle.net/7dp8xvf8/1/
Ist es ein Fehler?
UPDATE: IE 8 und 9 hat das gleiche Verhalten, aber 10-11 ist in Ordnung.
Es ist offensichtlich, dass Chrome die Zeitzone geändert hat, FireFox jedoch nicht; Ich nehme an, Sie sind an diesem Ort selbst, gab es zu dieser Zeit eine wesentliche Veränderung? Ich konnte zu diesem Zeitpunkt nichts online finden. –
Welches Verhalten siehst du, wenn du 'setMinutes' kleiner als' 60' bist? (z. B. was erzeugt 'd.setMinutes (58);'?) Ich glaube nicht, dass ich Ihr Skript testen kann, ohne die Zeitzone/den Standort meines Browsers zu ändern. – apsillers
@AdrianWragg Ich bin an diesem Ort, aber vor den letzten FireFox Updates wurde das Problem nicht angezeigt. –