web-dev-qa-db-fra.com

Moment.js "Date non valide"

J'ai juste essayé de faire une entrée de texte avec une date formatée. Cela fonctionne bien sur Google Chrome, mais quand je l'exécute sur Mozilla Firefox (26.0), il dit: Invalid date.

Vous pouvez voir et exécuter mon exemple dans les deux navigateurs et, espérons-le, comprendre le problème.

Code JS:

$( "#h_reg_date" ).datepicker();
$("#h_reg_date").datepicker("option", "dateFormat", "yy-M-dd");

$("#save_data").on("click", function(){
 var reg_date = $("#h_reg_date").val();
  console.log(reg_date);
  reg_date =  moment(reg_date).format("YYYY/MM/DD");
  console.log(reg_date);
  return;
});

HTML:

<input type="text" id="h_reg_date"class="abs" style="top:135px; left:150px;" size="10" readonly >
<input type="button" id="save_data" class="abs" style="top:370px; left:-200px;" value="Add Data">

Y-a t'il une solution à ce problème?

24
Sameera Silva

Modifiez le format de datepicker en:

$("#h_reg_date").datepicker("option", "dateFormat", "yy/mm/dd");

JS Fiddle: http://jsfiddle.net/MMm86/1/

Pour mettre la date dans le format demandé, utilisez:

$( "#h_reg_date" ).datepicker();
$("#h_reg_date").datepicker("option", "dateFormat", "yy/M/dd");

$("#save_data").on("click", function(){
 var reg_date = $("#h_reg_date").val();
  console.log(reg_date);
  reg_date =  moment(reg_date).format("YYYY/MMM/DD");
  console.log(reg_date);
  return;
});

JS Fiddle: http://jsfiddle.net/MMm86/2/

7
Kevin Bowersox

Supposons que votre date soit au format 'DD-MM-YYYY' et que vous souhaitiez l'afficher au format DD-MMM, vous pouvez le faire en indiquant d'abord la fonction moment à quel format votre date est actuellement, puis en lui demandant de la convertir au format requis . Voici l'exemple:

var taskDueDate = moment(dueDate, 'DD-MM-YYYY').format('DD-MMM');

De cette façon, vous pouvez convertir votre date dans n'importe quel format.

26
Sachin T Sawant

Cela semble être un problème connu, selon leurs documents. http://momentjs.com/docs/#/parsing/string/

On dirait qu'ils suggèrent de passer la chaîne de temps et le format.

3
thescientist