反应日期选择器 - 无效的时间值

Posted

技术标签:

【中文标题】反应日期选择器 - 无效的时间值【英文标题】:React datepicker - invalid time value 【发布时间】:2019-11-27 14:50:58 【问题描述】:

我正在尝试创建一个 React-datepicker;但是,我收到此错误:

RangeError: 无效的时间值

我添加了一个 dateFormat 来匹配我的日期变量;但是,我仍然遇到同样的错误?

我做错了什么?

import DatePicker from "react-datepicker";

let date = moment(dateString).format('MMMM d, YYYY h:mm a'); // January 3, 2019 12:30 pm

<DatePicker
    selected=date
    onChange=this.handleInputChange
    showTimeSelect
    timeFormat="HH:mm"
    timeIntervals=15
    dateFormat="MMMM d, YYYY h:mm a"
    timeCaption="time"
/>

我也试过 dateFormat="MMMM d, yyyy h:mm aa"

【问题讨论】:

【参考方案1】:

DatePicker 需要 Date,而不是 moment。你必须先转换它:

let date = moment(dateString).toDate();

来自 DatePicker docs:

在 1.8.0 版之前,此软件包使用 Moment.js。从 v2.0.0 开始,我们切换到使用原生 Date 对象来减小包的大小。如果您要从 1.8.0 切换到 2.0.0 或更高版本,请参阅上面的更新示例,查看示例站点以获取最新示例。

【讨论】:

谢谢。这正是我遇到的问题!【参考方案2】:

在我的情况下,问题涉及在从数据库中提取 ISO 格式的日期后检查日期是否为空。

 <DatePicker selected=initiated_Date ? new Date(initiated_Date) : null  

【讨论】:

以上是关于反应日期选择器 - 无效的时间值的主要内容,如果未能解决你的问题,请参考以下文章

反应日期选择器日期范围

当我单击日期两次时,引导日期选择器无效日期问题?

日期选择器中带有时刻 js 的无效日期

如何使用反应表单挂钩验证反应日期选择器

指定的演员对日期选择器无效

为啥这个组件根本不显示?反应日期选择器