Ici, javascript relativement simple, je ne sais pas pourquoi IE me déteste (traitez les autres comme vous voulez être traité, je suppose).
var newDate = new Date("2012, 11, 2 19:30:00:000");
alert(newDate);
Cela fonctionne dans Chrome et FF, mais IE génère "Date non valide".
Fiddle moi ce: http://jsfiddle.net/k6yD6/
La chaîne donnée au constructeur de date doit être une date formatée RFC2822 ou ISO 8601 . Dans votre exemple, ce n'est pas le cas. Essayez ce qui suit:
new Date("2012-11-02T19:30:00.000Z");
ou en utilisant un constructeur alternate :
new Date(2012, 11, 2, 19, 30, 0)
Internet Explorer ne semble pas prendre en charge les millisecondes et les mois dans Numerical String. Essaye ça:
new Date("November 2, 2012 19:30:00");
ou
new Date(year, month, day, hours, minutes, seconds, milliseconds)
J'avais le même problème avec Internet Explorer. Voici comment j'ai formaté la date et l'heure au début,
function formatDateTime(date, formatString = 'MM/DD/YYYY hh:mm A') {
return moment(new Date(date)).format(formatString);
}
Le problème était avec new Date()
. Je viens de l'enlever car c'était déjà une date UTC
. Donc c'est juste,
return moment(date).format(formatString);
Cela a fonctionné pour moi dans tous les navigateurs, y comprisC'EST-À-DIRE.
Pour travailler dans IE
, la date doit être au format approprié. J'ai corrigé le même problème en utilisant le format ci-dessous:
var tDate = new Date('2011'+"-"+'01'+"-"+'01'); //Year-Month-day
Regardez la date de référence de Mozilla.
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date
Je vous en prie!
Utilisation
var newDate = moment("2012, 11, 2 19:30:00:000").toDate();
alert(newDate);
Cela fonctionnera également dans IE.