2013-06-03 14 views
5

Uruchomiłem następujące w konsoli na Firefox (wersja 21) i mam wyniki, których się nie spodziewam.JavaScript wydaje się używać stref czasowych do tyłu z Firefoxem

new Date(1362891600000); 

var date = new Date(1362891600000); 
var time = date.getHours(); 
new Date(date.setHours(date.getHours() + 24)); 

Wynik naprawdę rzuca mnie na pętlę.

Pierwsza data wyświetla się jako Wschodniogodzina, a druga wyświetla się we wschodnim czasie standardowym. Jest całkowicie wstecz. Tak się nie dzieje z IE lub Chrome.

Co tu się dzieje? enter image description here

+0

Należy zauważyć, że chociaż etykiety "Eastern Daylight Time" i "Eastern Standard Time" są cofnięte, rzeczywiste przesunięcia stref czasowych w użyciu (GMT-0500 i GMT-0400) są poprawne. Jeśli numeryczne przesunięcie strefy czasowej i nazwa strefy czasowej nie pasują do siebie, to nie mogę sobie wyobrazić, że cokolwiek, co zrobiłeś źle, mogło to spowodować. Dlatego powiedziałbym, że to błąd przeglądarki Firefox! – Celada

+0

@Celada dzięki ... to było coś, czego się bałem. Miałem nadzieję, że to jeden z tych "wygląda na to, że to błąd XYZ, ale w rzeczywistości to ja zrobiłem coś złego" rodzaj scenariuszy. – Joseph

+0

Jest to z pewnością błąd w Firefoksie. Powinieneś prawdopodobnie zgłosić to do nich. Należy jednak pamiętać, że wszystko po offsecie jest niestandardowe, a obsługa znacznie różni się w różnych przeglądarkach i systemach operacyjnych. Możesz go wyświetlić użytkownikowi, ale nie polegaj na niczym krytycznym. –

Odpowiedz

4

Jest to z pewnością błąd w Firefoksie. Powinieneś prawdopodobnie zgłosić to do nich.

Należy jednak pamiętać, że wszystko po offsecie jest niestandardowe, a obsługa różni się znacznie w różnych przeglądarkach i systemach operacyjnych.

Na przykład niektóre przeglądarki wyświetlają nazwę strefy czasowej, podczas gdy inne wyświetlają skrót lub identyfikator wewnętrzny. Ponadto niektóre zachowują własne ciągi znaków, a niektóre używają wartości zwróconych przez system operacyjny. W systemie Windows istnieje inna baza danych strefy czasowej niż w systemie Linux lub Mac. Ponadto niektóre przeglądarki mogą lokalizować ten ciąg przy użyciu ustawień języka, lokalizacji lub kultury.

Możesz wyświetlić go użytkownikowi, jeśli wiesz, że jego wartość jest we własnej lokalnej strefie czasowej. Ale nie licz na to, że jest coś krytycznego.

+0

Zgłoszony tu błąd: (bugzilla.mozilla.org/show_bug.cgi?id=879261) – Joseph

+0

Błąd pojawia się ponownie w FF 56.0.1 (64-bitowy). Patrząc na historię błędu, wydaje się być naprawiony, a nie naprawiony, a następnie naprawiony. –

Powiązane problemy