【问题标题】:jQuery Daterange Picker only showing current and future datesjQuery Daterange Picker 只显示当前和未来的日期
【发布时间】:2021-09-07 07:16:09
【问题描述】:

我需要显示过去的日期。我目前正在显示今天的日期和未来的日期。过去的日期目前不可选择。我需要知道如何使它们可选择。

目前,此代码显示过去 3 个月,但它只允许用户选择今天的日期或未来的日期。我需要日期选择器范围来允许用户选择过去的日期。

$(".datepicker").datepicker({
  minDate: 0,
  numberOfMonths: [3, 1],
  beforeShowDay: function(date) {
    var date1 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input1").val());
    var date2 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input2").val());

    // console.log(moment.utc(date1).format("YYYY-MM-DD"));
    // console.log(moment.utc(date2).format("YYYY-MM-DD"));

    // instantiate array to hold all dates selected in date range
    var getDaysArray = function(s, e) {
      for (var a = [], d = new Date(s); d <= e; d.setDate(d.getDate() + 1)) {
        a.push(new Date(d));
      }
      return a;
    };

    // daylist contains all dates between both dates selected
    var daylist = getDaysArray(date1, date2);

    daylist.map((v) => v.toISOString().slice(0, 10)).join("")
    // console.log(daylist);

    // iterate over dates selected to populate table data for days selected
    for (var i = 0; i < daylist.length; i++) {
      // console.log(daylist[i]);
      // console.log(moment.utc(daylist[i]).format("YYYY-MM-DD"));
    }

    return [
      true,
      date1 && ((date.getTime() == date1.getTime()) || (date2 && date >= date1 && date <= date2)) ? "dp-highlight" : ""
    ];
  },
  onSelect: function(dateText, inst) {
    var date1 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input1").val());
    var date2 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input2").val());
    var selectedDate = $.datepicker.parseDate($.datepicker._defaults.dateFormat, dateText);

    if (!date1 || date2) {
      $("#input1").val(dateText);
      $("#input2").val("");
      $(this).datepicker();
    } else if (selectedDate < date1) {
      $("#input2").val($("#input1").val());
      $("#input1").val(dateText);
      $(this).datepicker();
    } else {
      $("#input2").val(dateText);
      $(this).datepicker();
    }
  }
});

【问题讨论】:

标签: javascript jquery datepicker date-range


【解决方案1】:

只需更改或删除 minDate: 0。这将显示现在、过去和未来的日期,允许用户选择它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    相关资源
    最近更新 更多