如果一周总是从星期日开始,您可以通过执行以下操作来检查它们是否都在同一周:
function getMinAndMax(dates) {
var result = {};
for (var index in dates) {
var thisDate = dates[index]
, dateParts = thisDate.split(/\//)
, fullDate = new Date(dateParts[2], dateParts[0] - 1, dateParts[1]);
if(!result['max'] || fullDate > result['max']) {
result['max'] = fullDate;
}
if(!result['min'] || fullDate < result['min']) {
result['min'] = fullDate
}
}
return result;
}
function isSameWeek(dates) {
var minAndMax = getMinAndMax(dates)
, dayOfWeek = {}
dayOfWeek['min'] = minAndMax['min'].getDay();
dayOfWeek['max'] = minAndMax['max'].getDay();
if(minAndMax['max'] - minAndMax['min'] > 518400000 || dayOfWeek['min'] > dayOfWeek['max']) {
return false;
}
return true;
}
要使用上述功能,您可以:
var datesArray = [
'07/13/2015'
, '07/14/2015'
, '07/15/2015'
, '07/16/2015'
, '07/10/2015'
];
isSameWeek(datesArray); // false
var datesArray2 = [
'07/15/2015'
, '07/14/2015'
, '07/15/2015'
, '07/15/2015'
, '07/13/2015'
];
isSameWeek(datesArray2); // true
要查看所有日期是否相同,您可以包含之前声明的 getMinAndMax 函数,然后执行以下操作:
function areAllDatesSame(dates) {
var minAndMax = getMinAndMax(dates);
return minAndMax['min'] == minAndMax['max']
}
你可以这样称呼它:
var datesArray = [
'07/13/2015'
, '07/14/2015'
, '07/15/2015'
, '07/16/2015'
, '07/13/2015'
];
areAllDatesSame(datesArray); // false
var datesArray2 = [
'07/13/2015'
, '07/13/2015'
, '07/13/2015'
, '07/13/2015'
, '07/13/2015'
];
areAllDatesSame(datesArray2); // true