首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算对象的日期字段的最大日期?

如何计算对象的日期字段的最大日期?
EN

Stack Overflow用户
提问于 2016-05-09 23:28:39
回答 3查看 43关注 0票数 0

在我的node.js应用程序中,我有以下对象数组,其中包括一个名为REPORTEDDATE的日期字段:

代码语言:javascript
复制
[ { INCIDENTNUMBER: 'INC000000000002',
    SUBMITTER: 'Chris',
    REPORTEDDATE: Mon May 09 2016 18:17:04 GMT+0000 (UTC),
    LASTRESOLVEDDATE: Mon May 09 2016 18:17:04 GMT+0000 (UTC),
    OWNERGROUP: 'ACME Help Desk',
    COMPANY: 'ACME Inc',
    CATEGORIZATIONTIER1: 'cat-1',
    CATEGORIZATIONTIER2: 'cat-2',
    CATEGORIZATIONTIER3: 'cat-3',
    RESOLUTIONCATEGORY: 'res-cat',
    RESOLUTIONCATEGORYTIER2: 'res-cat-2',
    RESOLUTIONCATEGORYTIER3: 'res-cat-3',
    REPORTEDSOURCE: 'Phone',
    DESCRIPTION: 'Some description',
    ID: 9 },
  { INCIDENTNUMBER: 'INC000000000002',
    SUBMITTER: 'Chris',
    REPORTEDDATE: Mon May 09 2016 18:17:09 GMT+0000 (UTC),
    LASTRESOLVEDDATE: Mon May 09 2016 18:17:09 GMT+0000 (UTC),
    OWNERGROUP: 'ACME Help Desk',
    COMPANY: 'ACME Inc',
    CATEGORIZATIONTIER1: 'cat-1',
    CATEGORIZATIONTIER2: 'cat-2',
    CATEGORIZATIONTIER3: 'cat-3',
    RESOLUTIONCATEGORY: 'res-cat',
    RESOLUTIONCATEGORYTIER2: 'res-cat-2',
    RESOLUTIONCATEGORYTIER3: 'res-cat-3',
    REPORTEDSOURCE: 'Phone',
    DESCRIPTION: 'Some description',
    ID: 10 } ]

是否有方法确定这些对象的REPORTEDDATE字段的最大日期?我知道-更好的方式是描述我试过的东西,但是,用这种格式,我真的不知道从哪里开始.

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-09 23:38:48

您可以很简单地使用mapreduceMath.maxDate.parse()来完成它。

代码语言:javascript
复制
var maxDate = new Date(arr.map(o => Date.parse(o.REPORTEDDATE))
                          .reduce((a, b) => Math.max(a, b)))
                          .toUTCString();

工作JSFiddle

票数 3
EN

Stack Overflow用户

发布于 2016-05-09 23:38:58

假设REPORTEDDATE是一个实际的Date实例,而不是字符串,则使用减缩操作

代码语言:javascript
复制
let maxDate = new Date(arrayOfObjects.reduce(
    (currentMaxDate, obj) => Math.max(currentMaxDate, obj.REPORTEDDATE), 0));

注意,Math.max()通过Date.prototype.valueOf()将日期视为数字,后者返回日期的时间戳。这就是为什么减少操作的输出被包装在new Date()中的原因。

票数 0
EN

Stack Overflow用户

发布于 2016-05-09 23:43:17

您可能可以使用Date类将字符串中的日期解析为可以在循环中进行比较的内容,以找到最大值,如:

var timestamp = new Date(array[0].REPORTEDDATE).getTime();

根据系统上date类的实现,您可能会发现需要使用字符串来使其正确解析,或者失败,您可能需要使用外部库或编写代码来获取日期、月、分钟、小时、秒等,并从中构造日期对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37127003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档