2013-02-12 9 views
15

Safari su OSX ritiene che il 6 ottobre 2013 sia un sabato in Australia. Non è, è in realtà una domenica.Perché Safari è confuso su Date.getDay() per l'ora legale a Sydney, fuso orario di Aus?

Per replicare questo problema, è sufficiente impostare il fuso orario su Sydney-Australia, aprire la console di sviluppo in Safari e immettere la nuova data ("2013/10/06"). Otterrete questo:

enter image description here

Ora passa a Seattle-USA e otterrete questo:

enter image description here

Il problema si verifica anche per Melbourne-Australia, ma non per le città maggiori a nord come Brisbane (che si adatta allo zoning for Australian DST) oa una manciata di altre città che ho testato in tutto il mondo.

Ora, il 6 ottobre 2013 è il start of daylight savings time in Sydney.. E lo stesso errore viene commesso per le altre date di inizio dell'ora legale negli altri anni. Non sembra esserci un problema per le date di fine dell'ora legale. Non sembra esserci un problema per le date di inizio dell'ora legale nel fuso orario PDT. Inoltre, Chrome e Firefox non presentano questo problema.

Ho testato la maggior parte di questo su due diversi Mac, uno su Snow Leopard con Safari 5.1.7 e uno su Lion con Safari 6.0.2.

Quindi la domanda è - si tratta di un bug o c'è una qualche ragione razionale per questo?

+1

Stesso comportamento su Safari in Win7 per me – koopajah

+0

Prova: 'd = new Date (" 2013-10 -06"); d.setMinutes (d.getMinutes() + d.getTimezoneOffset()) ' –

+0

Il mio hack è usare' new Date (datestring + "12:00"). getDay() 'che mette il tempo solidamente nel mezzo del giorno lontano da tutti gli switch DST (http://www.worldtimezone.com/daylight.html). – jlarson

risposta

6

Questo dovrebbe essere considerato un bug. Tecnicamente parlando, l'ora legale a Sydney inizia il 2013/10/06 alle 2:00, quindi il 2:00 diventa 3:00 (http://www.timeanddate.com/worldclock/clockchange.html?n=240). Sembra che Safari in questo caso stia pensando che intendi il 2013/10/06 a mezzanotte e poi tornerà 1 ora alle 23 il giorno precedente. Questo non ha nemmeno senso perché alle 2:00 l'orologio dovrebbe andare avanti di un'ora.

mi sento di raccomandare di segnalare un bug per questo - perché l'uscita è così palesemente sbagliato

https://developer.apple.com/bugreporter/

+1

Sì, I ho presentato una segnalazione di errore. Il motivo principale per cui l'ho inserito in SO è che qualsiasi altro Dev che cerca di capirlo potrebbe avere un tempo più facile per accedere a queste informazioni ... – jlarson

+0

@jlarson Hai qualche informazione da Apple quando questo bug verrà corretto? Posso riprodurlo su Safari 7.1 e 8.0. Grazie. – dherbolt

+0

@dherbolt - nope – jlarson

Problemi correlati