我想从产品数组中排序日期(日期是产品中的字段之一)。请建议我。我正在使用ReactJS。
请找到正在使用的代码。
render() {
let sortedDate = this.state.item.sort((a, b) => Date.parse(new Date(a.expected_ship_date("/").reverse().join("-"))) - Date.parse(new Date(b.expected_ship_date("/").reverse().join("-"))));
let sortedDate1 = this.state.item.sort((a, b) => new Date(a.expected_ship_date) - new Date(b.expected_ship_date));
return (
<tr>
<td><input name="line_number" type="text" value={ this.state.item.line_number } disabled={ this.props.mode } className="form-control" onChange={ this.handleInputChange }/> </td>
<td><input name="requested_ship_date" type="date" value={ this.state.item.expected_ship_date } disabled={ this.props.mode } className="form-control" onChange={ this.handleInputChange } /></td>
<td>{sortedDate.map( (c, i) => <div>{c.expected_ship_date}</div>)}</td>
</tr>
);
}
答案 0 :(得分:1)
要进行排序,您需要将日期转换为epoch
日期,然后尝试排序。
我建议您使用moment
将日期转换为epoch
安装:
npm install --save moment
代码:
import moment from 'moment'
let sortedDate = this.state.item.sort((a, b) => moment(a.expected_ship_date).valueOf() - moment(b.expected_ship_date).valueOf());