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?
6 réponses
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
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.)
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)
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
utiliser le moment JS pour toute opération de datation.
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>