首页 > 解决方案 > 如何在 datetime-local TextField 中禁用距当前日期超过 1 年的日期

问题描述

我的目标是禁用过去几天和从当前日期起超过 1 年,它在过去几天有效,但不能从当前日期起禁用超过 1 年,我试过但没有奏效。

这是代码:

<TextField
  variant="outlined"
  id="datetime-local"
  label="Select Date and Time"
  placeholder="Select Date and Time"
  type="datetime-local"
  value={this.state.DateTime}
  InputLabelProps={{
    shrink: true,
  }}
  inputProps={{
    min: new Date().toISOString().slice(0, 16),
  }}
  onChange={this.HandleChange}
/>

例如:今天的日期是 04-15-2021,那么它应该根据当前日期启用 1 年日期,即 04-15-2022。任何人都可以在这个查询中帮助我吗?谢谢!提前

标签: javascriptreactjsmaterial-ui

解决方案


您可以maxDate通过将年份添加到今天的日期来创建:

const d = new Date();
const maxDate = new Date(d.getFullYear() + 1, d.getMonth(), d.getDate());

并在max中使用inputProps

inputProps={{
  min: d.toISOString().slice(0, 16),
  max: maxDate.toISOString().slice(0, 16)
}}

推荐阅读