为了保持一致性,我希望能够将JQuery UI的datepicker的解析/格式转换为使用momentjs。有什么可能是最好的方法吗?
答案 0 :(得分:32)
到目前为止,我发现这样做的最佳方法是覆盖全局 jquery-ui parseDate
和formatDate
函数,如下所示:
$.datepicker.parseDate = function(format, value) {
return moment(value, format).toDate();
};
$.datepicker.formatDate = function (format, value) {
return moment(value).format(format);
};
然后,这很好地允许您使用通常的语法将 datepicker 附加到字段,但您指定的格式将改为引用 momentjs 格式而不是{{3 }}
$(".selector").datepicker({ dateFormat: "MM-DD-YYYY" });
答案 1 :(得分:0)
如果有人使用 https://xdsoft.net/jqplugins/datetimepicker 插件并面临同样的问题,第一个解决方案将是您的选择。 使用已接受的解决方案后,您将面临所选日期未突出显示的问题。
因此修改已接受的解决方案以修复所选日期突出显示问题
jQuery.datetimepicker.setDateFormatter({
parseDate: function (date, format) {
var d = moment(date, format);
return d.isValid() ? d.toDate() : false;
},
formatDate: function (date, format) {
if (format == "Y/m/d")
return moment(date).year() + "/" + moment(date).month() + "/" + moment(date).date();
return moment(date).format(format);
}
});