5 votes

Javascript new Date object from String, résultats différents sur IE et FF

J'essaie de créer un nouvel objet date à partir d'une chaîne de caractères comme suit :

var myDate= new Date("1985-01-01T00:00:00.000-06:00");

Sur FireFox, l'alerte est la suivante

Tue Jan 01 1985 00:00:00 GMT-0600 (Central Standard Time)

Sous IE8, l'alerte est la suivante

NaN

Pourquoi IE se comporte-t-il de cette façon ?

5voto

AntoJs Points 5214

En regardant vers le documetation le bon format est le suivant :

  new Date(year, month, day [, hour, minute, second, millisecond ]) 

Ainsi, si vous exécutez le code suivant, il fonctionnera correctement dans tous les navigateurs :

 var myDate= new Date(1985, 01, 01 , 00, 06, 00, 0000000000);
 myDate // you get the right date in all browsers IE8/7 included

2voto

dontGoPlastic Points 1742

Essayez moment.js pour tous vos problèmes de date JS.

0voto

KooiInc Points 38845

Ce format n'est pas pris en charge par IE. Vous pouvez peut-être essayer d'utiliser setUTCHours :

var rawdate = new Date("1985/01/01 00:00:00 GMT");
console.log(rawdate);
  //=> in my timezone: Tue Jan 1 01:00:00 UTC+0100 1985
console.log(rawdate.setUTCHours(-6));
  //=> in my timezone that results in: Mon Dec 31 19:00:00 UTC+0100 1984

Ou peut-être voulez-vous dire (fonctionne dans IE, pas dans les autres navigateurs) ?

var rawdate = new Date("1985/01/01 00:00:00 GMT-6");
  //=> Tue Jan 1 07:00:00 UTC+0100 1985

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X