Question Erreur d'analyse de date JavaScript IE


Pourquoi IE ne peut pas analyser cette chaîne en tant qu'objet Date.

var d = Date.parse("Fri Jun 11 04:55:12 +0000 2010"); // returns NaN

Cependant, cela fonctionne bien dans FireFox. Je cours IE 8.

Merci.


13
2018-06-11 05:58


origine


Réponses:


Vous obtenez NaN valeur dans IE 8 et son fonctionnement dans Firefox, car le format de la chaîne varie selon le navigateur et le système d'exploitation.

Par exemple, dans IE6 pour Windows XP, la chaîne est au format suivant:

Tue Dec 05 16:47:20 CDT 2006

Mais dans Firefox pour Windows XP, la chaîne est

Tue Dec 05 2006 16:47:20 GMT-0500

pour le rendre compatible avec les deux navigateurs, vous devrez d'abord vérifier le navigateur dans votre navigateur. code javascript, puis donnez en conséquence votre date d’entrée.


9
2018-06-11 06:32



J'ai trouvé le Plugin de globalisation jQuery analyse de date pour mieux fonctionner. D'autres méthodes avaient des problèmes entre navigateurs et des choses comme date.js n'avaient pas été mises à jour depuis longtemps.

Vous n'avez pas non plus besoin d'un DatePicker sur la page. Vous pouvez simplement appeler quelque chose de similaire à l'exemple donné dans les docs:

$.datepicker.parseDate('yy-mm-dd', '2007-01-26');

10
2017-12-30 22:03



Est résolu mon problème en créant un objet date et laisse-moi lui rendre l'horodatage. Mais pour cela, vous devez convertir votre chaîne dans ce format:

year, month, date, hours, minutes, seconds,ms

un exemple serait comme:

dateObj = new Date(year, month, date);
timestamp = dateObj.getTime();

Cela fonctionne dans IE et FF.

Centre de développement IE: objet de date (JavaScript)

Réseau de développement Mozilla: Date

Pour votre exemple, vous voudriez quelque chose comme ceci:

//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

4
2017-07-25 06:32



à cause du +00000. essayez d'ajouter que le dernier

var d = Date.parse("Fri Jun 11 04:55:12 2010 +0000");

0
2018-06-11 06:15



Cela peut vous aider. Je viens de résoudre un problème similaire à celui-ci.

Problème avec la fonction Javascript Date dans IE 7, renvoie NaN


-1
2017-07-14 05:52