如何在react-native中添加分钟到Date()?

时间:2016-10-05 15:25:51

标签: react-native

我想将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)

确实会添加分钟数,但是当我执行两次时会出现错误。 请帮忙!

1 个答案:

答案 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());