2

我目前有一个开始日期和结束日期日期选择器,它在页面加载时预先填充了日期。如果用户在没有与日期选择器交互的情况下单击下一个按钮,我将无法获得选择器中的正确日期,并且只能将日期作为字符串。

但是,我可以从 onChange 事件中检索日期,但在某些情况下这可能为时已晚。

这是我的代码示例以进行更多解释:

startDateAccomm = flatpickr("#StartDate", {
  minDate: instance.selectedDates[0],
  dateFormat: dateFormat,
  onChange: function (selectedDates, dateStr, instance) {
    if (selectedDates.length > 0) {
        endDateAccomm.config.minDate = selectedDates[0];

    if (startDateAccomm.selectedDates.length > 0) {
        startDateSelected = startDateAccomm.selectedDates[0].getFullYear() + "-" + (startDateAccomm.selectedDates[0].getMonth() + 1) + "-" + startDateAccomm.selectedDates[0].getDate();
    }

    if (endDateAccomm.selectedDates.length > 0) {
        endDateSelected = endDateAccomm.selectedDates[0].getFullYear() + "-" + (endDateAccomm.selectedDates[0].getMonth() + 1) + "-" + endDateAccomm.selectedDates[0].getDate();
    }
  }

  if () {
    //do something here.
  }
}

我想将最小日期设置为页面加载时预填充的日期,但由于实例在与日期选择器交互之前未定义,因此无法以正确的格式获取。

任何帮助是极大的赞赏。

4

1 回答 1

2

在尝试了 flatpickr https://flatpickr.js.org/events/#hooks提供的各种事件和钩子之后,我能够使用 onReady 事件。

onReady: function (selectedDates, dateStr, instance) {

        startDateSelected = selectedDates[0].getFullYear() + "-" + 
        (selectedDates[0].getMonth() + 1) + "-" + selectedDates[0].getDate();            

    }, 
于 2019-07-09T10:18:52.727 回答