0

我正在使用 Moment.js 和 react-datepicker。它在将日期转换为 ISO-8601 方面按预期工作,但我无法使其符合时间。

这是我的组件:

最初声明:

this.state = {
            from: moment().subtract(7, "days"), // Default 1 week back
            to: moment(), // Current date
        };

组件本身:

<DatePicker
    dateFormat="DD-MMM HH:mm"
    dropdownMode="select"
    selected={this.state.from}
    onChange={this.handleFromChange}
/>

和 onchange 触发器:

handleFromChange(date) {
    this.setState({
        from : date
    });
}

我认为我的问题是 dateFormat;DD-MMM 很容易通过调用 ECMAScript 函数转换为 ISO-8601,toISOString()然后再发布到一些后端服务。但是我怎样才能有时间去做呢?

用户(我自己,测试)可以在日期选择器本身上获得时间,但它不会在该州注册。简单地说,它只会选择当前时间,或 1 周前的当前时间(根据从/到初始状态的时刻)。日期,我也可以更改,但时间保持不变(当前时间)。

如何更改 dateFormat 以便花费用户输入的时间?如何在dateFormat属性中使其默认符合 ISO 8601 标准?

编辑:我刚刚测试了设置“from”以减去 5 分钟:

this.state = {
            from: moment().subtract(5, "minutes"),
            to: moment(), // Current date
        };

当我发布它时,它的格式正确。似乎很奇怪。那么它必须与onChange函数有关吗?

4

0 回答 0