抛出错误 RangeError: Invalid time value while setting custom date to DatePicker of react-datepicker

Roh*_*wai 4 javascript datepicker momentjs reactjs react-datepicker

我正在尝试将所选参数设置为react-datepicker的 DatePicker 的默认日期。我从数据库中获取的基本上日期格式如下:

event_date: "2019-06-15"

当我设置状态时,该日期以这种方式显示 - event_date: "2019-06-15T00:00:00"

我试图new Date()将其转换为与 JavaScript 兼容的日期。也试过MomentJS但它也抛出了同样的错误。当我打电话new Date()selected参数,然后一切完美。我的意思是,DatePicker 显示默认的今天日期。但是当我尝试将自定义日期值设置为 DatePicker 时,它会引发错误 - RangeError: Invalid time value

谁能告诉我 DatePicker 设置自定义日期需要什么类型的数据?

rav*_*l91 10

看来你的日期是string格式。Datepicker不接受字符串日期。

您需要使用parseISO将字符串日期解析为实际日期

import { parseISO } from 'date-fns' 
Run Code Online (Sandbox Code Playgroud)

用法,

parseISO(your_custom_date)
Run Code Online (Sandbox Code Playgroud)


mar*_*ful 6

React-datepicker 需要传递一个实例Date作为配置值,例如startDate等(或者可能它也除了时间戳整数,不确定)。

您可以使用

new Date(Date.parse("2019-06-15T00:00:00"));
Run Code Online (Sandbox Code Playgroud)

创建日期实例。Date.parse()可识别许多日期字符串格式并将它们转换为时间戳值,而构造函数又接受这些值Date()