28 votes

jquery/javascript convertit une chaîne de date en date

J'ai une chaîne de date "Sunday, February 28, 2010" que je voudrais convertir en un objet date js formaté @ MM/DD/YYYY mais je ne sais pas comment. Avez-vous des suggestions ?

92voto

Jono Wilkinson Points 771

Si vous utilisez jQuery, vous pouvez utiliser la fonction parseDate de la bibliothèque UI datepicker pour convertir votre chaîne en date :

var d = $.datepicker.parseDate("DD, MM dd, yy",  "Sunday, February 28, 2010");

puis utilisez la méthode formatDate pour obtenir le format de chaîne de caractères que vous souhaitez.

var datestrInNewFormat = $.datepicker.formatDate( "mm/dd/yy", d);

Si vous ne travaillez pas avec jQuery, bien sûr, ce n'est probablement pas le meilleur plan, car vous aurez besoin de jQuery core ainsi que du module d'interface utilisateur de datepicker... Le mieux est de suivre la suggestion de Segfault ci-dessus d'utiliser date.js.

HTH

20voto

Segfault Points 3311

Je prendrais date.js ou bien vous devrez mettre en place votre propre fonction de formatage.

3voto

stallingOne Points 1199

Si vous n'en avez besoin qu'une fois, il est inutile de charger un plugin.

Pour une date "jj/mm/aaaa", cela fonctionne pour moi :

new Date(d.date.substring(6, 10),d.date.substring(3, 5)-1,d.date.substring(0, 2));

Il suffit d'inverser le mois et le jour pour obtenir mm/dd/yyyy, la syntaxe est la suivante new Date(y,m,d)

3voto

MUlferts Points 630

J'ai utilisé la fonction javascript de date toLocaleDateString pour obtenir

var Today = new Date();
var r = Today.toLocaleDateString();

Le résultat de r sera

11/29/2016

Plus d'informations sur le site : http://www.w3schools.com/jsref/jsref_tolocaledatestring.asp

3voto

RoToRa Points 20081
var stringDate = "Sunday, February 28, 2010";

var months = ["January", "February", "March"]; // You add the rest  :-)

var m = /(\w+) (\d+), (\d+)/.exec(stringDate);

var date = new Date(+m[3], months.indexOf(m[1]), +m[2]);

El indexOf sur les tableaux n'est prise en charge que par les navigateurs les plus récents (c'est-à-dire pas IE). Vous devrez effectuer la recherche vous-même ou utiliser l'une des nombreuses bibliothèques qui offrent la même fonctionnalité.

Le code ne comporte pas non plus de vérification des erreurs, ce qui devrait être ajouté. (chaîne ne correspondant pas à l'expression régulière, mois inexistants, etc.)

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