查找最小和最大日期

You*_*per 2 javascript datetime date max minimum

有一个数组:

var a = new Array();
Run Code Online (Sandbox Code Playgroud)

它包含这样的日期条目:'2012-09-12 09:20'等

我需要使用 javascript 查找最小和最大日期。此代码不适用于时间值。

var minT = Math.min.apply(Math, a);
var maxT = Math.max.apply(Math, a);
Run Code Online (Sandbox Code Playgroud)

如何在javascript中解决这个问题?这似乎很复杂,因为我对这门语言不是很熟悉。

Roc*_*mat 5

如果您的数组包含Date对象,那么这应该可以工作。如果它只包含像 那样的字符串'2012-09-12 09:20',那么你可以对它们进行排序,并获得第一个和最后一个元素。

a.sort(function(a, b){
    return Date.parse(a) - Date.parse(b);
});

var maxT = a[a.length-1];
var minT = a[0];
Run Code Online (Sandbox Code Playgroud)

  • 对数组进行排序并不是很有效 - `O(n log n)` 而 min&max 需要 `O(2n)`。此外,您的排序方法会在每次比较中创建两个 `Date` 对象 - 而字母数字排序将具有相同的结果。 (2认同)