React-datepicker minTime и maxTime не работает - PullRequest
0 голосов
/ 20 января 2020

У меня есть DatePicker в моей форме и;

Я использую этот пакет: [https://reactdatepicker.com/#example -specifi c -time-range] [1]

в дату начала выбора: Я хочу отключить все время до текущего времени. Так что если сейчас 3 часа ночи. до того, как часы (2 часа ночи, 1 час ночи, 12 часов утра) будут отключены.

Обычно это выглядит так: Но здесь они пишут stati c time, я хочу добавить туда текущий час текущего времени.

<DatePicker
      selected={startDate}
      onChange={date => setStartDate(date)}
      showTimeSelect
      minTime={setHours(setMinutes(new Date(), 0), 17)}
      maxTime={setHours(setMinutes(new Date(), 30), 20)}
      dateFormat="MMMM d, yyyy h:mm aa"
    />

Итак, я видел несколько примеров об этом и пробовал это:

const now = moment().toDate();

<DatePicker
                    selected={this.state.startDate}
                    onChange={event => this.getStartDate(event)}
                    showTimeSelect
                    timeFormat="haa"
                    timeIntervals={60}
                    minDate={now}
                    minTime={now.hours(now.hour()).minutes(now.minutes())}
                    maxTime={now.hours(23).minutes(45)}
                    dateFormat="MM/d/yyyy hhaa"
                    timeCaption="Hour"
                  />

но ничего не произошло. Где я ошибаюсь?

1 Ответ

0 голосов
/ 20 января 2020

Вы можете использовать библиотеки, встроенные в функции времени, чтобы правильно установить время. Поскольку мин. Часы - это текущий желаемый час, вам нужно всего лишь использовать setMinutes, чтобы установить минуты обратно на 0. Полученный код должен выглядеть примерно так:

<DatePicker
  selected={now}
  onChange={event => this.getStartDate(event)}
  showTimeSelect
  timeFormat="haa"
  timeIntervals={60}
  minDate={now}
  minTime={setMinutes(now, 0)}
  maxTime={setHours(setMinutes(now, 45), 23)}
  maxDate={now}
  dateFormat="MM/d/yyyy hhaa"
  timeCaption="Hour"
/>

Оформить демонстрацию можно здесь: https://stackblitz.com/edit/react-time-picker-demo

...