html - 使用 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 中需要进行哪些计算。
解决方案
这里缺少一些东西。
您将要复制
selectedDate
,handleDateChange
以便您可以分别跟踪两个日期。也许selectedStartDate
和selectedEndDate
要计算差异,我建议使用
moment
npm 包,其语法类似于:
const months = moment.duration(moment(selectedEndDate).diff(moment(selectedStartDate))).asMinutes()