Date.parse
doit réellement analyser la majeure partie de la chaîne de date dans son horodatage respectif.
Les 2 mises en garde semblent être:
- Millisecondes sont pas pris en charge, ils doivent être séparés et a ajouté après l'analyse syntaxique.
- Il prendra l'heure locale, donc
'GMT'
ou 'UTC'
devrait être ajouté avant l'analyse.
Avec cela à l'esprit, ce qui suit devrait fonctionner:
function parseSoapDate(dateString) {
var dateParts = dateString.split('.'),
dateParse = dateParts[0],
dateMilli = dateParts[1];
return new Date(
Date.parse(dateParse + ' GMT') +
parseInt(dateMilli, 10)
);
}
var date = parseSoapDate('2010/07/08 04:21:24.477');
Quant à UTC à l'heure locale, les objets Date
de JavaScript doit déjà gérer pour vous, car ils peuvent indiquer la date à la fois UTC et la le fuseau horaire local de l'utilisateur. Vous spécifiez que vous voulez par le nom de la méthode (si elle a UTC
dans ou non):
alert(date.toString()); // local time
alert(date.toUTCString()); // UTC time
"2010/07/08 04: 21: 24,477" est pas une date valide format. – Anax
Fixé. A fonctionné sur Chrome au moins. –