Moment.js“无效日期”

时间:2014-02-04 01:08:06

标签: jquery datepicker momentjs

我只是尝试使用格式化日期进行文本输入。它在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">

这个问题有解决办法吗?

3 个答案:

答案 0 :(得分:20)

假设您的日期格式为“DD-MM-YYYY&#39; &安培;你想以DD-MMM格式显示它然后你可以通过首先告诉当前日期和日期格式的时刻功能来做到这一点。然后要求它将其转换为所需的格式。以下是示例:

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

这样您就可以以任何格式转换日期。

答案 1 :(得分:7)

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/

答案 2 :(得分:3)

根据他们的文档,这似乎是一个已知问题。 http://momentjs.com/docs/#/parsing/string/

看起来他们建议传递时间字符串和格式。