首页 > 解决方案 > 使用 KeyboardDatePicker 的 React.js 中两个日期之间的月差

问题描述


const Index = (props) => {

    const [selectedDate, setSelectedDate] = useState(
        new Date("2014-08-18T21:11:54")
      );
    
      const handleDateChange = (date) => {
        setSelectedDate(date);
      };
return (
<div>
//first date picker
 <MuiPickersUtilsProvider
                    utils={DateFnsUtils}
                    //  className={classes.formControlNew}

                    style={{ width: "100%" }}
                  >
                    <KeyboardDatePicker
                      style={{ marginLeft: "5%", width: "91%" }}
                      margin="normal"
                      id="date-picker-dialog1"
                      label="Start Date"
                      format="MM/dd/yyyy"
                      value={selectedDate}
                      onChange={handleDateChange}
                      KeyboardButtonProps={{
                        "aria-label": "change date",
                      }}
                    />
                  </MuiPickersUtilsProvider>

// second date picker

 <MuiPickersUtilsProvider
                    utils={DateFnsUtils}
                    
                    style={{ width: "100%" }}
                  >
                    <KeyboardDatePicker
                      style={{ marginLeft: "5%", width: "91%" }}
                      margin="normal"
                      id="date-picker-dialog2"
                      label="End Date"
                      format="MM/dd/yyyy"
                      value={selectedDate}
                      onChange={handleDateChange}
                      KeyboardButtonProps={{
                        "aria-label": "change date",
                      }}
                    />
                  </MuiPickersUtilsProvider>
</div>
);
};

我使用两个日期选择器从用户那里获取两个日期。其中第一个日期是开始日期,第二个是结束日期。我想计算这两个日期之间的月差。我应该如何得到月差?在 Reactjs 中需要进行哪些计算。

标签: htmlreactjsdatepicker

解决方案


这里缺少一些东西。

  1. 您将要复制selectedDatehandleDateChange以便您可以分别跟踪两个日期。也许selectedStartDateselectedEndDate

  2. 要计算差异,我建议使用momentnpm 包,其语法类似于:

const months = moment.duration(moment(selectedEndDate).diff(moment(selectedStartDate))).asMinutes()


推荐阅读