Comment puis-je convertir une valeur de date au format ISO 8601 à un objet date en JavaScript?
J'ai essayé de convertir une valeur de date dans un format plus lisible. Pour ce faire, je suis en train d'analyser la date à l'aide du JavaScript Date.parse()
méthode. Cela, cependant, ne fonctionne pas sur l'entrée (par exemple: "2007-09-21T14:15:34.058-07:00"
) que j'ai. L'objectif final est de produire une chaîne de date comme "January 30th, 2008 @ 2:15PM"
.
Des idées?
- L'UTC est le fuseau horaire 00:00. Entendez-vous format ISO 8601?
Vous devez vous connecter pour publier un commentaire.
Essayer http://www.datejs.com/. C'est un JavaScript Date de Bibliothèque avec une longue Date.méthode d'analyse et une Date.parseExact méthode, qui permet de spécifier une chaîne de format.
Voir DateJS APIDocumentation.
console.log(Date.parse('1997-07-16T19:20:30+01:00'));
sorties null, et si l'horaire de la partie est retiré, il fonctionne, mais dans le format Américain (Mercredi 16 Juillet 1997 19:20:30 GMT+0100 (BST)), tandis que la "Mer 16 Juil, 1997..." aurait été un peu plus de Britanniques.Vous devriez probablement utiliser la datejs que f3lix recommandé, cependant, je m'ennuyais, et jeté un petit objet qui fait exactement ce que vous avez demandé:
25 septembre 2012: Nettoyage de code, permettent à un format étendu, par exemple, 20120925T164740+0200
Décembre 1, 2011: correction d'un bug dans la chaîne de mois. Août manquait
Exemple:
Explication:
convertir prend une chaîne de caractères en entrée et retourne un objet date en cas de succès ou lève une exception si ce n'. La chaîne doit être dans un des formats suivants:
Où:
format prend une chaîne de caractères dans le format ci-dessus ou de la date de l'objet et retourne une chaîne formatée comme:
Où
- M est l'anglais complet nom du mois
- D est la date de mois avec un ordre numérique, de ce suffixe (1 ou 2 chiffres)
- Y est l'année (1 ou plusieurs chiffres)
- h est l'heure en format 12 heures (1 ou 2 chiffres)
- m est l'minutes (2 chiffres)
mois est un tableau avec le nom du mois
ordinale est une fonction qui prend un nombre en entrée et retourne le nombre avec préfixe anglais.
clock12 est une fonction qui prend de l'heure, la minute et la seconde en format 24h et la convertit en une chaîne de caractères dans la NOUS format 12h. Le secondes est facultatif.