web-dev-qa-db-ja.com

Moment.js「無効な日付」

書式設定された日付でテキスト入力をしようとしました。 Google Chromeでは正常に動作していますが、Mozilla Firefox(26.0)で実行すると次のように表示されます:Invalid date

両方のブラウザで my example を表示して実行でき、うまくいけば問題を理解できます。

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">

この問題の解決策はありますか?

24
Sameera Silva

datepickerの形式を次のように変更します。

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

JSフィドル:http://jsfiddle.net/MMm86/1/

要求された形式で日付を入力するには、次を使用します。

$( "#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フィドル:http://jsfiddle.net/MMm86/2/

7
Kevin Bowersox

日付の形式が「DD-MM-YYYY」であり、DD-MMM形式で表示したい場合、まず、現在の日付の形式をモーメント関数に伝えてから、必要な形式に変換するように依頼することでこれを行うことができます。以下に例を示します。

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

これにより、日付を任意の形式に変換できます。

26
Sachin T Sawant

ドキュメントによると、既知の問題のようです。 http://momentjs.com/docs/#/parsing/string/

時間文字列と形式を渡すことを提案しているように見えます。

3
thescientist