猿问

请教一个最小时间差的算法

我有6个日期,分别是:2018-07-212018-08-132018-08-302018-9-022018-09-282018-11-02

我需要提取出时间间隔最小的两个日期,也就是上面这几个日期我需要提取出:2018-08-302018-9-02

请问怎么做?


ITMISS
浏览 472回答 1
1回答

长风秋雁

趁着排序顺便算一下更省事var dtStart;var dtEnd;var tmDelta = -1; ['2018-07-21','2018-08-13','2018-08-30','2018-9-02','2018-09-28','2018-11-02'].sort(function($a, $b){    var tmA = (new Date($a)).getTime();    var tmB = (new Date($b)).getTime();    var delta = Math.abs(tmA - tmB);    if(tmDelta == -1 || delta > tmDelta)     {         tmDelta = delta;         dtStart = $a;         dtEnd   = $b;     }    return tmA - tmB; }) console.log(dtStart, dtEnd)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答