Moment.js“无效日期”
Posted
技术标签:
【中文标题】Moment.js“无效日期”【英文标题】:Moment.js "Invalid date" 【发布时间】:2014-02-27 18:01:24 【问题描述】:我只是尝试使用格式化日期进行文本输入。它在 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">
有没有办法解决这个问题?
【问题讨论】:
【参考方案1】:假设您的日期格式为“DD-MM-YYYY”并且您想以 DD-MMM 格式显示它,那么您可以通过首先告诉 moment 函数您的日期当前是哪种格式然后要求它转换它来做到这一点到所需的格式。下面是例子:
var taskDueDate = moment(dueDate, 'DD-MM-YYYY').format('DD-MMM');
这样您可以将日期转换为任何格式。
【讨论】:
【参考方案2】:将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/
【讨论】:
我已经知道了.. 但我需要在 2013/Jan/31 中显示日期格式。有没有其他的js或解决方案可以做到这一点? 是的……我明白了……但我想将日期显示为 2013 年 1 月 31 日。但它应该 var 为 2013/01/31 @SameeraSilva 你的cmets让我很困惑,在你想要2013/Jan/31
的第一条评论中你想要2013-Jan-31
的最后一条评论?
哦..对不起...当我将分隔符从“-”更改为“/”时,它可以工作..但是为什么它在 2013 年 1 月 31 日不起作用?【参考方案3】:
根据他们的文档,这似乎是一个已知问题。 http://momentjs.com/docs/#/parsing/string/
看起来他们建议传入时间字符串和格式。
【讨论】:
是否有其他解决方案可以实现这一点? 谢谢先生。将已知格式传递给方法的部分对我有用以上是关于Moment.js“无效日期”的主要内容,如果未能解决你的问题,请参考以下文章
TypeScript + moment.js:错误 TS2307:找不到模块'moment'