jQuery / javascript convertir la chaîne de date en date

j'ai une chaîne de date "le dimanche 28 février 2010" que je voudrais convertir en un objet date js formaté @ MM/JJ/AAAA mais je ne sais pas comment. Toutes les suggestions?

32
demandé sur sadmicrowave 2010-06-04 17:19:41

6 réponses

je prendrais date.js ou bien vous devrez lancer votre propre fonction de formatage.

22
répondu Segfault 2010-06-04 13:34:13

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

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

et ensuite le suivre avec la méthode formatDate pour l'obtenir au format de chaîne que vous voulez

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

si vous n'êtes pas en cours d'exécution avec jQuery bien sûr, ce n'est probablement pas le meilleur plan étant donné que vous auriez besoin de jQuery core ainsi que le module D'interface utilisateur du curseur de données... mieux pour aller avec la suggestion de Segfault ci-dessus pour utiliser la date.js.

HTH

99
répondu Jono Wilkinson 2011-07-29 11:01:28
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]);

la méthode indexOf sur les tableaux n'est prise en charge que sur les nouveaux navigateurs (c'est-à-dire pas IE). Vous aurez besoin de faire la recherche vous-même ou utiliser l'une des nombreuses bibliothèques qui fournissent les mêmes fonctionnalités.

aussi le code manque de vérification d'erreur qui devrait être ajoutée. (Chaîne ne correspondant pas à l'expression régulière, mois inexistants, etc.)

4
répondu RoToRa 2010-06-04 13:34:49

si vous n'en avez besoin qu'une fois, c'est exagéré 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));

inversez juste le mois et le jour pour mm / JJ / AAAA, la syntaxe est new Date(y,m,d)

2
répondu stallingOne 2016-01-30 11:58:05

j'ai utilisé la fonction date javascript toLocaleDateString pour obtenir

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

le résultat de r sera

11/29/2016

plus d'informations à: http://www.w3schools.com/jsref/jsref_tolocaledatestring.asp

2
répondu MUlferts 2016-11-29 16:17:37

utiliser le moment JS pour toute opération de datation.

https://momentjs.com /

console.log(moment("Sunday, February 28, 2010").format('MM/DD/YYYY'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
1
répondu Vijay Maheriya 2017-03-24 11:07:00