当前位置: 首页 > 知识库问答 >
问题:

获取范围错误:使用React日期选择器时时间值无效

咸星波
2023-03-14

我已经使用react-datepicker库设置了一个DatePicker组件,并将使用今天的日期以MM-DD-YYYY格式计算的初始日期值传递给它。

但是,当我在React中加载页面时,我得到

RangeError:无效的时间值

const AuthForm = ({ buttonText, formType, onAuth, history, ...props }) => {

  const startDate = new Date().toLocaleDateString();

  const initialStateSignup = {
      email : "",
      password : "",
      firstName: "",
      lastName: "",
      gender: "",
      dob: startDate
  };
    const [state , setState] = useState(formType === 'login' ? initialStateLogin : initialStateSignup);

  const handleChange = e => {
      const {name , value} = e.target;
      setState( prevState => ({
          ...prevState,
          [name] : value
      }))
  }
  ...
  return (
     <DatePicker
        placeholderText="Date of Birth"
        selected={state.dob}
        onChange={handleChange}
      />
  )

这个错误是从哪里来的?我在控制台上记录了startDate,它对我来说似乎是有效的,这是我在其他线程中看到的用于生成开始日期的方法。

共有2个答案

宗政洋
2023-03-14

只需传递给您的DatePicker组件dateFormat="MM-DD-YYYY"prop,具有所需的格式。

https://reactdatepicker.com/#example-7

<DatePicker
  dateFormat="MM-DD-YYYY"
  selected={this.state.startDate}
  onChange={this.handleChange} 
/>

注意:如果您的状态是对象,您希望使用useReducer而不是useState

董良策
2023-03-14

根据这篇文章https://github.com/Hacker0x01/react-datepicker/issues/1752 您很可能使用旧版本的datepicker,这也可能与您的React环境不完全一致。

因此,请检查您的react datepicker版本,如果需要,请升级到2,并使用以下语法:

const selected = moment(isoDateStr).toDate();

这是因为版本2之前的react datepicker直接使用矩对象日期类型,而版本2使用javascript日期类型。

 类似资料:
  • 问题内容: 如何在MySQL中的日期范围之间选择数据。我的专栏是24小时的祖鲁时间格式。 尽管在这些时间段之间有数据,但不返回任何内容。我是否必须强制 “发件人” 和 “发件人” 字段中的值键入查询? 问题答案: 您需要更新日期格式:

  • 日期时间选择器是一个定制的picker,因此他的用法和picker完全一致。打开picker的默认值是当前时间,可以通过value参数指定 datetime-picker 定制了 onChange 和 cols 参数,请不要设置这两个参数。 <input type="text" id='datetime-picker'/> <script>   $("#datetime-picker").da

  • 我想禁用日期时间选择器中的时间选择器。我正在使用一些参数,如picTime: false和form:"dd MM yyyy"。但是没有用...我正在使用http://eonasdan.github.io/bootstrap-datetimepicker/ Plzz给出解决方案

  • 问题内容: 目前,我的表格中有一列存储日期和时间。该列的数据类型是 没有时区的时间戳 。因此它具有格式为的值。 我需要检索有关日期的行。如果我使用: 它将提供介于“ 2011-09-13 11:03:44.537”和“ 2011-09-12 11:03:44.537”之间的值。 但是,如果我要使用: 没有日期,月份和秒,它不显示任何行。 如何从此表中获取有关日期的值(仅包含日期,忽略小时,分钟和秒

  • 问题内容: 在Android中使用日期选择器时选择错误的日期日期选择器对话框将日期选择为 2018/55/10 有时会选择正确的日期,但大多数情况下会选择错误的日期 问题答案: 您在日期格式中犯了一个常见错误:是分钟,用于获取月份。

  • DateTimePicker 日期时间选择器 在同一个选择器里选择日期和时间 tip DateTimePicker 由 DatePicker 和 TimePicker 派生,Picker Options 或者其他选项可以参照 DatePicker 和 TimePicker。 日期和时间点 通过设置type属性为datetime,即可在同一个选择器里同时进行日期和时间的选择。快捷选项的使用方法与 D