按日期排序 ImmutableJS 和 Moment()
Sort by Date ImmutableJS and Moment()
我有 array
个 objects
。对象具有键 date
。 date
是 moment
格式的 date
,创建方式如下:moment('1970-11-11')
.
如何按 ascending/descending 顺序按日期对数组进行排序?
那个
arrayOfObjects.sort((a, b) => b.get('date') - a.get('date');
也不
arrayOfObjects.sort((a, b) => b.get('date').format('DD.MM.YYYY') - a.get('date').format('DD.MM.YYYY'))
不排序。
试试这个:
arrayOfObjects.sort((a, b) => b.get('date').unix() - a.get('date').unix());
请原谅我这么问,但如果我理解正确的话,你在那个数组中有 moment
个对象完全能够进行日期计算和差异。所以,如果是这样,为什么不呢:
var data = [moment('1972-11-11'), moment('1971-11-11'), moment('1973-11-11')]
const result = data.sort((a,b) => a.diff(b)) // change to b.diff(a) for desc
console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
根据 diff
上的即时文档。不需要date/unix
等
我有 array
个 objects
。对象具有键 date
。 date
是 moment
格式的 date
,创建方式如下:moment('1970-11-11')
.
如何按 ascending/descending 顺序按日期对数组进行排序?
那个
arrayOfObjects.sort((a, b) => b.get('date') - a.get('date');
也不
arrayOfObjects.sort((a, b) => b.get('date').format('DD.MM.YYYY') - a.get('date').format('DD.MM.YYYY'))
不排序。
试试这个:
arrayOfObjects.sort((a, b) => b.get('date').unix() - a.get('date').unix());
请原谅我这么问,但如果我理解正确的话,你在那个数组中有 moment
个对象完全能够进行日期计算和差异。所以,如果是这样,为什么不呢:
var data = [moment('1972-11-11'), moment('1971-11-11'), moment('1973-11-11')]
const result = data.sort((a,b) => a.diff(b)) // change to b.diff(a) for desc
console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
根据 diff
上的即时文档。不需要date/unix
等