Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将从服务器返回的日期转换为React日期选择器使用的格式_Javascript_Reactjs_React Datepicker - Fatal编程技术网

Javascript 将从服务器返回的日期转换为React日期选择器使用的格式

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

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 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 me
null
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 me
null
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上出错