C'è uno strano comportamento del metodo data setMinutes di FireFox 34 per impostare i 60 minuti per l'anno 2008 01 gennaio 23 ore 00 minuti 00 sec. Si prevede che aumenterà il giorno ma questo no.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/>";
Il risultato FireFox 34 è:
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)
al posto di 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)
Se cambio l'anno al 2006 il risultato è 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/
È un errore?
UPDATE: IE 8 e 9 ha lo stesso comportamento, ma 10-11 è ok.
C'è il punto ovvio che Chrome ha cambiato fuso orario ma FireFox no; Presumo che tu sia in quella posizione da solo, che ci sia stato un cambiamento significativo in quel momento? Non sono stato in grado di trovare nulla online in quella data. –
Che comportamento vedi se 'setMinutes' meno di' 60'? (ad esempio, cosa significa 'd.setMinutes (58);' produce?) Non penso di poter testare il tuo script senza modificare il fuso orario/posizione del mio browser. – apsillers
@AdrianWragg Sono in quella posizione ma prima dell'ultimo aggiornamento di FireFox il problema non è stato visualizzato. –