Moment.js"无效日期"

Sam*_*lva 24 jquery datepicker momentjs

我只是尝试使用格式化日期进行文本输入.它在谷歌浏览器上运行良好,但当我在Mozilla Firefox(26.0)上运行它时,它说:Invalid date.

您可以在两个浏览器中查看并运行我的示例,并希望能够理解该问题.

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;
});
Run Code Online (Sandbox Code Playgroud)

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">
Run Code Online (Sandbox Code Playgroud)

有没有解决这个问题的方法?

Sac*_*ant 27

假设您的日期格式为'DD-MM-YYYY'并且您希望以DD-MMM格式显示它,那么您可以通过首先告诉当前格式化日期的时刻函数然后要求它将其转换为所需格式来执行此操作.以下是示例:

var taskDueDate = moment(dueDate, 'DD-MM-YYYY').format('DD-MMM');
Run Code Online (Sandbox Code Playgroud)

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


Kev*_*sox 7

将格式更改datepicker为:

$("#h_reg_date").datepicker("option", "dateFormat", "yy/mm/dd");
Run Code Online (Sandbox Code Playgroud)

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;
});
Run Code Online (Sandbox Code Playgroud)

JS小提琴: http ://jsfiddle.net/MMm86/2/


the*_*ist 5

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

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