2011-11-25 14 views
14

Mam ciąg daty "2011-11-24T09: 00: 27 + 0000" pobrane z interfejsu API graph.facebook.javascript date.parse różnica w chrome i innych przeglądarkach

Kiedy biegnę

var timestamp = Date.parse(facebookDate); 

w Chrome. Dostaję datownik, który odnosi się do daty! idealny!

Ale w KAŻDYM innym ważnym przeglądarce ... dostaję "NaN" !!! ?

Z pewnością wszystkie te przeglądarki używają tej samej funkcji parsowania javascript, prawda?

Czy ktoś może wyjaśnić, dlaczego ta sama funkcja javascript daje różne wyniki?

A może ktoś też mi powiedzieć jak rozwiązać ten problem ...

góry dzięki

Alex

+0

Proszę zobaczyć zaktualizowany skrypt od pierwszego ADDED przesunięcia zamiast odejmowania go – mplungjan

+5

" Na pewno wszystkie te przeglądarki używają tego samego javascript parse function right? "Nie. Witaj w Web Development – user123444555621

+0

@Alex - czy to ZAWSZE +0000, bo wtedy możemy po prostu zmienić ją na Z – mplungjan

Odpowiedz

10

Oto poprawka dla IE i Firefox/Safari (z pomocą JavaScript: Which browsers support parsing of ISO-8601 Date String with Date.parse ):

DEMO

var noOffset = function(s) { 
    var day= s.slice(0,-5).split(/\D/).map(function(itm){ 
    return parseInt(itm, 10) || 0; 
    }); 
    day[1]-= 1; 
    day= new Date(Date.UTC.apply(Date, day)); 
    var offsetString = s.slice(-5) 
    var offset = parseInt(offsetString,10)/100; 
    if (offsetString.slice(0,1)=="+") offset*=-1; 
    day.setHours(day.getHours()+offset); 
    return day.getTime(); 
} 

Od MDN

JavaScript 1.8.5 uwaga

Podzbiór ISO 8601 sformatowane łańcuchach daty mogą być również przetwarzane.

Alternatywnie, ciąg daty/czasu może mieć format ISO 8601. Począwszy od JavaScript 1.8.5/Firefox 4 obsługiwany jest podzestaw ISO 8601. Na przykład "2011-10-10" (tylko data) lub "2011-10-10T14: 48: 00 (data i godzina) mogą być przekazywane i analizowane. Strefy czasowe w datach ISO nie są jeszcze obsługiwane, więc np." 2011- 10-10T14: 48: 00 + 0200 "(ze strefą czasową) nie daje jeszcze zamierzonego rezultatu

+1

Piękna i działa idealnie Dziękuję bardzo – Warpling

+1

Dziękuję Ci bardzo Mplungjan, Ty uratowałem mój dzień !!! – avenet

Powiązane problemy