Я создаю календарь, в котором люди могут выбирать диапазон дней из визуального календаря.
Нажатие на дату выберет ее в качестве даты «с» или «до».Например, если я нажму 1januari и 5 января.1 января будет датой «с», а 5 января - датой «с».Легко ли?
Теперь дело в том, что если пользователь нажимает на новую дату, мне нужно обновить текущие даты «с» и «до».Использование
stringToDate(date.dateTime) > stringToDate(this.state.fromDate)
позволяет мне узнать, будет ли входящая дата более поздней, чем текущая дата «с даты», с помощью которой я могу изменить текущую дату «на» на дату прихода, потому что 7Январь наступает после 5 января со словом «должен», что означает, что пользователь хотел обновить свою дату «до».
Аналогичная функция делает то же самое для даты «с».Это прекрасно работает, но все это означает, что пользователи не могут выбрать дату «от», которая приходит позже, чем их исходная дата «от».
Что я хочу достичь, это следующее: Рассчитать, если дата поступленияближе к дате "от" или к дате.Поэтому, если пользователь начинает с 1 и 5 января и щелкает 2 января, я могу предположить, что он хочет обновить свою дату «с».
Моя текущая функция выглядит следующим образом:
handleFromDateSelected(date) {
let updatedFromDate = '';
let updatedToDate = '';
if (this.state.fromDate) {
if (stringToDate(date.dateTime) > stringToDate(this.state.fromDate)) {
updatedFromDate = this.state.fromDate;
updatedToDate = date.dateTime;
} else {
updatedFromDate = date.dateTime;
updatedToDate = this.state.fromDate;
}
} else {
updatedFromDate = date.dateTime;
}
this.setState({
fromDate: updatedFromDate,
toDate: updatedToDate,
});
}