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

时间:2016-05-09 23:28:39

标签: javascript arrays

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

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Click on a blue square to mark its vertexes</p>
<div id="transformed">
  <div id='nested'>


    <div class="target">

    </div>
    <div class="target">

    </div>
    <div class="target">

    </div>
    <div class="target">

    </div>
  </div>

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

3 个答案:

答案 0 :(得分:3)

您可以使用mapreduceMath.maxDate.parse()轻松完成。

var maxDate = new Date(arr.map(o => Date.parse(o.REPORTEDDATE))
                          .reduce((a, b) => Math.max(a, b)))
                          .toUTCString();

Working JSFiddle

答案 1 :(得分:0)

假设REPORTEDDATE是实际的Date实例而不是字符串,请使用 reduce 操作

let maxDate = new Date(arrayOfObjects.reduce(
    (currentMaxDate, obj) => Math.max(currentMaxDate, obj.REPORTEDDATE), 0));

注意,Math.max()会将日期视为通过Date.prototype.valueOf()的数字,并返回日期的时间戳。这就是reduce操作的输出包含在new Date()

中的原因

答案 2 :(得分:0)

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

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

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

相关问题