Javascript 使用moment.js按日期对数组进行分类

Javascript 使用moment.js按日期对数组进行分类,javascript,arrays,json,momentjs,Javascript,Arrays,Json,Momentjs,我正在尝试按日期对数组项进行分组。 数组列表如下所示: { title: 'title 01', timestamp: 1574082000000 }, { title: 'title 02', timestamp: 1574071200000 }, { title: 'title 03', timestamp: 1573974000000 }, . . . 输出应如下所示: { title: 'title 01', timest

我正在尝试按日期对数组项进行分组。 数组列表如下所示:

{
    title: 'title 01',
    timestamp: 1574082000000
},
{
    title: 'title 02',
    timestamp: 1574071200000
},
{
    title: 'title 03',
    timestamp: 1573974000000
},
.
.
.
输出应如下所示:

{
    title: 'title 01',
    timestamp: 1574082000000
},
{
    title: 'title 02',
    timestamp: 1574071200000
},
{
    title: 'title 03',
    timestamp: 1573974000000
},
.
.
.
2019年11月19日(或今天)

标题01

标题02

2019年11月18日

标题03

上周

标题04

九月

标题

坦白地说,我不能做太多,但我通过以下代码以所需的格式获得了周名称:

for ( let i = 0; i < transactions.length; i++ ) {
    let timestamps = moment( transactions[i].timestamp ).startOf('week')._d
    let weeklyTime = moment( timestamps ).format( 'Do MMMM, YYYY' )

    console.log( weeklyTime )
}
for(设i=0;i
最好的

~Nathan.

也许你要找的是moment.js中的“相对时间”?
.fromNow()
方法为您提供了一个很好的相对日期

var交易=[{
标题:“标题01”,
timestamp:moment().subtract(2,'hours')//为2天前创建测试日期
},
{
标题:“标题02”,
timestamp:moment().subtract(2,'hours')//为2天前创建测试日期
},
{
标题:“标题03”,
timestamp:moment().subtract(1,'days')//为昨天创建测试日期
},
{
标题:“标题04”,
timestamp:moment().subtract(7,'days')//创建上周的测试日期
},
{
标题:“标题05”,
timestamp:moment().subtract(70,'days')//为2个月前创建测试日期
}]
var transactionsortedwithrelativetime=transactions.sort((t1,t2)=>t1.valueOf()-t2.valueOf()).map(t=>({…t,when:moment(t.timestamp).fromNow());
(新集合(TransactionSortedWithRelativeTime.map(t=>t.when))).forEach(when=>{
log(当+':');
TransactionSortedWithRelativeTime.filter(t=>t.when==when.forEach(t=>console.log(“”+t.title))
})

如果您做了什么,请发布。正如您已经提到的momentjs,一个好的起点是查看他们主页上的示例:然后检查日期是否不超过一周,然后在工作日(例如,“矩().format('ddddd'))进行分组。否则,按周或按月分组。但是要理解他们的API,你应该从他们主页上的例子开始。非常感谢,@PhilippClaßen。