Dlaczego IE nie może sparsować tego ciągu jako obiektu Date.Błąd analizy składniowej daty IE JavaScript
var d = Date.parse("Fri Jun 11 04:55:12 +0000 2010"); // returns NaN
Jednak działa dobrze w FireFox. Używam IE 8.
Dzięki.
Dlaczego IE nie może sparsować tego ciągu jako obiektu Date.Błąd analizy składniowej daty IE JavaScript
var d = Date.parse("Fri Jun 11 04:55:12 +0000 2010"); // returns NaN
Jednak działa dobrze w FireFox. Używam IE 8.
Dzięki.
Otrzymujesz NaN
wartość w IE 8 i jej pracujących w Firefox format łańcucha zmienia się wraz z przeglądarki i systemu operacyjnego.
Na przykład, w IE6 dla systemu Windows XP, łańcuch jest w następującym formacie:
Tue Dec 05 16:47:20 CDT 2006
Ale Firefox dla Windows XP, ciąg jest
Tue Dec 05 2006 16:47:20 GMT-0500
aby był on zgodny z w obu przeglądarkach musisz najpierw sprawdzić przeglądarkę w swoim kodzie JavaScript, a następnie podać swój ciąg dat wejściowych.
ze względu na +00000. spróbuj dodać, że ostatni
var d = Date.parse("Fri Jun 11 04:55:12 2010 +0000");
Tak, ale to działa na wszystkich przeglądarkach i platformach? –
To może ci pomóc. Właśnie rozwiązałem problem podobny do tego.
Nie ma znaczenia, czy nadal jest pomocne –
Znalazłem jQuery Globalization Plugin datę analizowania działa najlepiej. Inne metody miały problemy z przeglądarkami, a takie rzeczy jak data.js nie były od dawna aktualizowane.
Nie potrzebujesz też elementu datePicker na stronie. można po prostu zadzwonić coś podobnego do przykładu podanego w docs:
$.datepicker.parseDate('yy-mm-dd', '2007-01-26');
mój problem jest rozwiązany poprzez tworzenie obiektu datę i pozwól mi go oddać znacznik czasu. Ale do tego trzeba konwertować wam ciąg w tym formacie:
year, month, date, hours, minutes, seconds,ms
przykładem byłoby jak:
dateObj = new Date(year, month, date);
timestamp = dateObj.getTime();
Działa Zapisz w IE i FF.
IE Dev Center: Date Object (JavaScript)
Dla przykładu byś coś takiego:
//your string
var str = "Fri Jun 11 04:55:12 +0000 2010";
//maps months to integer from 0 to 11
var monthArray = {"Jan":0, "Feb":1, "Mar":2, "Apr":3, "May":4, "Jun":5, "Jul":6, "Aug":7, "Sep":8, "Oct":9, "Nev":10, "Dec":11};
//get the values from the string
var regex = /^[^ ]+ ([^ ]+) (\d{1,2}) (\d{2}):(\d{2}):(\d{2}) \+(\d{4}) (\d{4})$/;
match = regex.exec(str);
var month = monthArray[match[1]],
date = match[2],
hours = match[3],
minutes = match[4],
seconds = match[5],
ms = match[6],
year = match[7];
//create date object with values
var dateObject = new Date(year, month, date, hours, minutes , seconds, ms);
var ts = dateObject.getTime(); //timestamp in ms
To! Uwaga jan zaczyna się od 0 :) – markthewizard1234
Ale czy istnieje kompatybilny wspólny format dla wszystkich przeglądarek i platform? –
Dla mnie działa funkcja .toJSON(). Zwraca datę w formacie, który wygląda jak "yyyy-mm-ddTxx.xx". Próbowałem w IE8 i FireFox 14. – Samuel
lub użyć [moment.js] (http://momentjs.com/) –