Javascript 将从服务器返回的日期转换为React日期选择器使用的格式
APi将以下日期返回给我:Javascript 将从服务器返回的日期转换为React日期选择器使用的格式,javascript,reactjs,react-datepicker,Javascript,Reactjs,React Datepicker,APi将以下日期返回给我: const date=“2019-06-3021:59:59.999+00”; 当我试图以编辑形式将其放入选中的中时: <DatePicker selected={date} onChange={this.props.handleChangeDateTask} showTimeSelect timeFormat="HH:mm" timeIntervals={15} dateFormat="MMMM
const date=“2019-06-3021:59:59.999+00”;
当我试图以编辑形式将其放入选中的中时:
<DatePicker
selected={date}
onChange={this.props.handleChangeDateTask}
showTimeSelect
timeFormat="HH:mm"
timeIntervals={15}
dateFormat="MMMM d, yyyy h:mm aa"
timeCaption="time"
/>
返回错误无效时间
。如何将其转换为日期选择器使用的格式?我尝试了新建日期(Date)
,但它不起作用。日期的格式无效,因为它在某些部分之间包含空格。可以使用以下方法解决此问题:
render(){
const date = "2019-06-30 21: 59: 59.999 + 00"
const formattedDate = new Date(date.replace(/: /g, ':',).replace(/ \+ /g, '+'));
return <DatePicker
selected={formattedDate}
onChange={this.props.handleChangeDateTask}
showTimeSelect
timeFormat="HH:mm"
timeIntervals={15}
dateFormat="MMMM d, yyyy h:mm aa"
timeCaption="time"
/>
}
render(){
施工日期=“2019-06-30 21:59:59.999+00”
const formattedDate=新日期(Date.replace(/:/g,,:')。replace(/\+/g,,+);
返回
}
日期的格式无效,因为它在某些部分之间包含空格。可以使用以下方法解决此问题:
render(){
const date = "2019-06-30 21: 59: 59.999 + 00"
const formattedDate = new Date(date.replace(/: /g, ':',).replace(/ \+ /g, '+'));
return <DatePicker
selected={formattedDate}
onChange={this.props.handleChangeDateTask}
showTimeSelect
timeFormat="HH:mm"
timeIntervals={15}
dateFormat="MMMM d, yyyy h:mm aa"
timeCaption="time"
/>
}
render(){
施工日期=“2019-06-30 21:59:59.999+00”
const formattedDate=新日期(Date.replace(/:/g,,:')。replace(/\+/g,,+);
返回
}
使用moment执行此操作非常简单。将日期解析为如下所示
let date = "2019-06-30T21:59:59.999+00";
您可以通过执行以下操作来实现这一点:
date = date.substring(0, 10) + "T" + date.substring(10, date.length);
然后用moment解析该日期并将其传递给DatePicker:
return <DatePicker
selected={moment(date).toDate()}
onChange={this.props.handleChangeDateTask}
showTimeSelect
timeFormat="HH:mm"
timeIntervals={15}
dateFormat="MMMM d, yyyy h:mm aa"
timeCaption="time"
/>
返回
使用moment执行此操作非常简单。将日期解析为如下所示
let date = "2019-06-30T21:59:59.999+00";
您可以通过执行以下操作来实现这一点:
date = date.substring(0, 10) + "T" + date.substring(10, date.length);
然后用moment解析该日期并将其传递给DatePicker:
return <DatePicker
selected={moment(date).toDate()}
onChange={this.props.handleChangeDateTask}
showTimeSelect
timeFormat="HH:mm"
timeIntervals={15}
dateFormat="MMMM d, yyyy h:mm aa"
timeCaption="time"
/>
返回
您可以做两件事。您可以使用moment.js将日期时间解析为您想要的任何格式。或者您可以使用一些函数式编程自己解析数据。如果您刚刚开始,我建议晚一点。@culanrocks我使用了时刻(日期)。toString()
但不起作用return menull
Try-time(日期)。toDate()@culanrocks时刻(日期)。toDate()–return me'invalid date'您必须以ISO 8601格式传递它。为此,必须在数据和时间之间添加一个“T”。您的日期应如下所示:const date=“2019-06-30T21:59:59.999+00”;我想你可以自己想办法,你可以做两件事。您可以使用moment.js将日期时间解析为您想要的任何格式。或者您可以使用一些函数式编程自己解析数据。如果您刚刚开始,我建议晚一点。@culanrocks我使用了时刻(日期)。toString()
但不起作用return menull
Try-time(日期)。toDate()@culanrocks时刻(日期)。toDate()–return me'invalid date'您必须以ISO 8601格式传递它。为此,必须在数据和时间之间添加一个“T”。您的日期应如下所示:const date=“2019-06-30T21:59:59.999+00”;我想你自己可能会知道怎么做?错误:date.substring不是一个函数
你必须更改const-date以允许date。只要date是一个字符串(和您的问题完全一样),那么它就可以工作。我只是测试了它,所以其他问题都在你身上。React date picker不接受这种格式。我仍然有错误无效时间
。在Google Chrome works上,在Mozilla firefox上,ErrorErrorError:date.substring不是一个函数
您必须将const date更改为let date。只要date是一个字符串(和您的问题完全一样),那么它就可以工作。我只是测试了它,所以其他问题都在你身上。React date picker不接受这种格式。我仍然有错误无效时间
。在Google Chrome works上,在Mozilla firefox上出错