从Javascript中的DateTime对象中仅提取日期?

时间:2017-01-17 14:16:22

标签: javascript jquery node.js rethinkdb

我有Json数组看起来像这样,它的工作正常,但我需要像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 对其进行分组,并且工作正常,但问题是我只想要日期部分,例如2016年12月28日

以下代码用于分组

var groupedData = _.groupBy(datas, function(d){
   return d.startedAt});}

1 个答案:

答案 0 :(得分:2)

在任何现代浏览器上,您都可以使用返回值toISOString的前10个字符:

var groupedData = _.groupBy(datas, function(d){
   return d.startedAt.toISOString().substring(0, 10);
});

前十个字符是年份,然后是月份,然后是日期,零填充,例如2017-01-17

请注意,这会按天数分组,而不是当地时间。

另请注意,toISOString是在2009年作为ES5的一部分添加的。

如果您需要支持没有它的过时浏览器,或者您需要使用本地时间,只需使用getFullYear / {从您需要的日期部分构建一个字符串,根据需要填充{1}} / getMonthgetDate / getUTCYear / getUTCMonth根据需要。