我正在使用 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函数有关吗?