Le moyen le plus propre à convertir jj-mm-aaaa mm-jj-aaaa format en Javascript
J'ai cette date comme une chaîne de caractères avec moi 15-07-2011 qui est dans le format dd-mm-yyyy
. J'avais besoin de créer un Date
objet de cette chaîne. J'ai donc pour convertir la date en dd-mm-yyyy
à mm-dd-yyyy
format.
Ce que j'ai fait est le suivant.
var myDate = '15-07-2011';
var chunks = myDate.split('-');
var formattedDate = chunks[1]+'-'+chunks[0]+'-'+chunks[2];
Maintenant, je suis à la chaîne 07-15-2011 qui est en mm-dd-yyyy
format, et je peux le passer à la Date()
constructeur pour créer un Date
objet. Je souhaite savoir si il existe une façon plus propre de le faire.
Il semble assez propre pour moi.
Voulez-vous dire de plus courte?
Non, je voulais dire cleaner - pratique largement acceptée.
Firefox 3.6 rex ne pas comprendre "mm-jj-aaaa", utiliser "mm/jj/aaaa" ou "aaaa-mm-jj". Je serais favorable à la plus tard, que c'est une norme ISO.
Juste clarifier, j'ai pensé qu'il avait l'air assez propre. Cela pourrait être plus propre si votre dans pour regexs
Voulez-vous dire de plus courte?
Non, je voulais dire cleaner - pratique largement acceptée.
Firefox 3.6 rex ne pas comprendre "mm-jj-aaaa", utiliser "mm/jj/aaaa" ou "aaaa-mm-jj". Je serais favorable à la plus tard, que c'est une norme ISO.
Juste clarifier, j'ai pensé qu'il avait l'air assez propre. Cela pourrait être plus propre si votre dans pour regexs
'15-07-2011'.replace(/(\d*)-(\d*)-(\d*)/,'$2-$1-$3')
OriginalL'auteur Sparky | 2011-07-13
Vous devez vous connecter pour publier un commentaire.
Qui a l'air très propre qu'il l'est.
OriginalL'auteur Paul Sonier
Réorganiser les morceaux d'une chaîne est parfaitement "propre" et de façon légitime de changer le format de la date.
Toutefois, si vous n'êtes pas heureux avec ce que (vous voulez peut-être savoir que la chaîne que vous êtes une réorganisation est en fait une date valide?), alors je vous recommande de regarder DateJS, qui est un plein de fonctionnalités de gestion des dates de la bibliothèque de Javascript.
OriginalL'auteur Spudley
Dépend de ce que tu veux dire par nettoyeur
Certains pourraient dire que c'est plus propre, mais il fait essentiellement la même.
OriginalL'auteur Sean Kinsey
Merci.., mais pourquoi voudriez-vous utiliser le protocole pop() lorsque vous savez exactement l'index de tableau et il ne va pas changer?
Si vous ne connaissez pas l'index de tableau et vous n'avez pas besoin de morceaux plus après, je trouve pop mmuch plus rapide à consulter le dernier élément du tableau. Si votre code est la mission essentielle bien sûr, pas besoin d'un inutile appel de fonction comme @cbrandolino dit.
OriginalL'auteur Jose Faeti
new Date()
peut accepter.Pourquoi est-il écrit que c[1]-1?
Parce que les objets Date comte mois commençant à 0 = Janv.
OriginalL'auteur Satyajit
Si vous vouliez, vous pourriez réduire vers le bas sur certaines variables.
Si vous voulez une doublure
Ouais ils sont assez moches ^_^
OriginalL'auteur William A
Je vais ajouter mon avis que votre solution est parfaitement valide, mais si vous voulez quelque chose de différent:
Vous donnera '2011-07-15" qui, bien que n'étant pas exactement ce que vous avez demandé, sera analysée correctement par
Date
OriginalL'auteur Mark Kahn
J'ai écrit une bibliothèque pour l'analyse, la manipulation et la mise en forme des chaînes nommé Moment.js
OriginalL'auteur timrwood
Essayer
#format
ne fonctionnera que si laDate.prototype
a été augmentée avec une telle méthode.myDate
n'est pas même une Date: c'est une Chaîne! Alors cette hypothétiqueformat()
méthode doit être dans leString.prototype
, qui a encore moins de sens.OriginalL'auteur boca