我有一个看起来像这样的数组,它工作正常,但我需要像 DateWise 那样将它们分组排列:
[
{
name: 'Ali',
startedAt: Wed Dec 28 2016 15:32:07 GMT+0500 (Pakistan Standard Time),
userId: '0002'
},
{
completedAt: Wed Dec 28 2016 12:51:47 GMT+0500 (Pakistan Standard Time),
name: 'Aliy',
startedAt: Wed Dec 28 2016 12:43:19 GMT+0500 (Pakistan Standard Time),
userId: '212'
},
{
name: 'Aliy',
startedAt: Wed Dec 28 2016 12:43:06 GMT+0500 (Pakistan Standard Time),
userId: '2121'
}
]
我有一个代码,根据
startedAt
对它们进行分组,它工作正常,但问题是我只想要日期部分,例如 28/12/2016。
以下代码用于分组:
var groupedData = _.groupBy(data, function(d) {
return d.startedAt;
});
在任何现代浏览器上,您可以使用
toISOString
返回值的前 10 个字符:
var groupedData = _.groupBy(datas, function(d){
return d.startedAt.toISOString().substring(0, 10);
});
前十个字符是年,然后是月,然后是日期,以零填充,例如
2017-01-17
。
请注意,这将按 UTC 日期(而不是当地时间)对它们进行分组。
另请注意,
toISOString
于 2009 年作为 ES5 的一部分添加。
如果您需要支持没有它的过时浏览器,或者您需要使用本地时间,只需从您需要的日期部分构建一个字符串,并根据需要进行填充,使用
getFullYear
/getMonth
/根据需要,getDate
或 getUTCYear
/getUTCMonth
/getUTCDate
。