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

问题描述 投票:0回答:1

我有一个看起来像这样的数组,它工作正常,但我需要像 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;
});
javascript jquery node.js rethinkdb
1个回答
10
投票

在任何现代浏览器上,您可以使用

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

© www.soinside.com 2019 - 2024. All rights reserved.