我想将5分钟添加到当前时间并将其存储到this.state.date。
然而,
this.setState({
date: new Date() + new Date(0,0,0,0,0,5,0),
});
给了我一些奇怪的错误,说
`props.date.getTime不是函数。 (在'props.date.getTime()'中,'props.date.getTime'未定义)
DatePickerIOS_render DatePickerIOS.ios.js:125
编辑:根据this帖子,我也在下面尝试过,
this.setState({
date: this.state.date.setMinutes((new Date()).getMinutes()+5)
});
但它仍然给我相同的错误消息。在react-native中添加分钟到Date()的正确方法是什么?
顺便说一句,我在应用程序的另一部分使用datepickerios,并且不知道为什么错误与DatePickerIOS.ios.js有关。实际使用DatePickerIOS的应用程序的另一部分工作正常,没有错误。
再次编辑:
以下是完整功能。这个函数是从SegmentedControlIOS调用的,它具有[从现在起5分钟,从现在起15分钟,从现在起30分钟,'自定义']的值。
_onTimeChange = (event) => {
switch (event.nativeEvent.selectedSegmentIndex) {
case 0:
// 5min
return this.setState({
date: this.state.date.setMinutes((new Date()).getMinutes()+5),
time: this.state.date.toLocaleTimeString()
});
case 1:
// 15min
return this.setState({
date: this.state.date.setMinutes((new Date()).getMinutes()+15),
time: this.state.date.toLocaleTimeString()
});
case 2:
// 30min
return this.setState({
date: this.state.date.setMinutes((new Date()).getMinutes()+30),
time: this.state.date.toLocaleTimeString()
});
case 3:
// show modal with datepicker (this one works fine)
return this.setModalVisible(true);
}
}
会发生什么:如果我从分段控件中更改选择一次,我的模拟器底部会显示一个带有props错误消息的黄色警告栏。如果我再次更改选择,则红色屏幕显示'_this5.state.date.setMinutes不是函数'。
所以它看起来像
date: this.state.date.setMinutes((new Date()).getMinutes()+5)
确实会添加分钟数,但是当我执行两次时会出现错误。 请帮忙!
答案 0 :(得分:2)
试试这个:
var d = new Date(); // get current date
d.setHours(d.getHours(),d.getMinutes()+5,0,0);
修改强>
var d = new Date(); // get current date
d.setHours(d.getHours(),d.getMinutes()+5,0,0);
this.setState(date:d,time:d.toLocaleTimeString());