用js解析和格式替换jquery datepicker日期格式

时间:2014-07-01 00:10:50

标签: jquery-ui-datepicker momentjs

为了保持一致性,我希望能够将JQuery UI的datepicker的解析/格式转换为使用momentjs。有什么可能是最好的方法吗?

2 个答案:

答案 0 :(得分:32)

到目前为止,我发现这样做的最佳方法是覆盖全局 jquery-ui parseDateformatDate函数,如下所示:

$.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);
  }
});