【发布时间】:2014-07-01 00:10:50
【问题描述】:
为了保持一致性,我希望能够将 JQuery UI 的 datepicker 的解析/格式转换为使用 momentjs。有什么想法可能是最好的方法吗?
【问题讨论】:
-
一个问题:它是如何处理空值的?它是否显示损坏的日历?
-
标签: jquery-ui-datepicker momentjs
为了保持一致性,我希望能够将 JQuery UI 的 datepicker 的解析/格式转换为使用 momentjs。有什么想法可能是最好的方法吗?
【问题讨论】:
标签: jquery-ui-datepicker momentjs
到目前为止,我发现的最佳方法是覆盖全局 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 格式而不是 http://momentjs.com/docs/#/parsing/string-format/
$(".selector").datepicker({ dateFormat: "MM-DD-YYYY" });
【讨论】:
如果有人使用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);
}
});
【讨论】: