如何从日期数组中找出最小和最大日期?目前,我正在创建一个这样的数组:
var dates = [];
dates.push(new Date("2011/06/25"))
dates.push(new Date("2011/06/26"))
dates.push(new Date("2011/06/27"))
dates.push(new Date("2011/06/28"))
是否有内置函数来执行此操作,还是我自己编写?
如何从日期数组中找出最小和最大日期?目前,我正在创建一个这样的数组:
var dates = [];
dates.push(new Date("2011/06/25"))
dates.push(new Date("2011/06/26"))
dates.push(new Date("2011/06/27"))
dates.push(new Date("2011/06/28"))
是否有内置函数来执行此操作,还是我自己编写?
代码经过 IE、FF、Chrome 测试并正常运行:
var dates=[];
dates.push(new Date("2011/06/25"))
dates.push(new Date("2011/06/26"))
dates.push(new Date("2011/06/27"))
dates.push(new Date("2011/06/28"))
var maxDate=new Date(Math.max.apply(null,dates));
var minDate=new Date(Math.min.apply(null,dates));
就像是:
var min = dates.reduce(function (a, b) { return a < b ? a : b; });
var max = dates.reduce(function (a, b) { return a > b ? a : b; });
在 Chrome 15.0.854.0 dev 上测试
由于日期被转换为 UNIX 纪元(数字),您可以使用 Math.max/min 来查找那些:
var maxDate = Math.max.apply(null, dates)
// convert back to date object
maxDate = new Date(maxDate)
(仅在 chrome 中测试,但应该在大多数浏览器中工作)