如何检查数组中的任何日期是否在日期范围内
How to check if any date from array is in date range?
希望大家都好。
我需要检查阵列中是否有日期
var arrayDates = ["2013-07-26", "2013-07-27"];
在的日期范围内
var startDate = new Date("2013-07-10");
var endDate = new Date("2013-07-10");
我真的被卡住了,开始弄糊涂了。有人能帮我吗。
附言:例如,上面的日期是动态的。
谢谢!
您需要使用实际日期对象,而不是字符串。
也许可以考虑使用dateJ来解析日期http://www.datejs.com/
但实际上,您需要遍历日期数组,并检查它们是否位于开始日期和结束日期的刻度值之间。
试试这个:
var arrayDates = [];
arrayDates.push(new Date(2013, 7 , 26));
arrayDates.push(new Date(2013, 7 , 27));
var startDate = new Date("2013-07-10");
var endDate = new Date("2013-07-10");
for(i = 0; i < arrayDates.length; i++){
if(arrayDates[i] >= startDate && arrayDates[i] <= endDate) {
alert('Yes');
}
}
另一种方法-http://jsfiddle.net/Mh5vn/
var ds = ["2013-07-26", "2013-07-27"];
Array.prototype.between = function(arg) {
var d1 = new Date(this[0]),
d2 = new Date(this[1]),
d3 = new Date(arg);
return (d1.getTime() <= d3.getTime() && d3.getTime() <= d2.getTime());
}
console.log( ds.between('2013-07-26') );
// true
console.log( ds.between('2013-07-28') );
// false
有了日期对象后,您可以非常直接地对它们进行比较。请参阅底部的此链接。
我看到你的问题被标记为jquery,所以你可以这样做:
$.each(arrayDates, function(i, val) {
if (val > endDate || val < startDate)
{
//Date is outside of that range
}
});
希望您可以将这些日期转换为数字并进行比较,这里有一个例子:
var arrayDates = ["2013-07-26", "2013-07-27"];
var unDash = function (string) {
return string.replace(/-/g, "")
}
var dateInRange = function (date, startDate, endDate) {
date = unDash(date)
startDate = unDash(startDate)
endDate = unDash(endDate)
return date > startDate && date < endDate
}
// You now filter your array to retrieve your dates
var dates = arrayDates.filter(function (date) {
return dateInRange(date, '2013-07-10', '2013-07-31')
})
相关文章:
- 使用JavaScript日期的任何时间的时区偏移量
- 日期-时间范围指令字段未显示任何值
- 检查开始日期是否小于结束日期(不使用任何pluguin)
- JavaScript 中任何格式的日期正则表达式
- 为什么iOS上的Phonegap中的新日期不返回任何内容
- 角度输入[类型=日期].未显示任何值
- Javascript:如果列包含任何日期,则在 google 电子表格中移动行 (1/2/2015)
- 为什么本地化仅在单击日期或任何其他按钮后才会更改
- 是否有任何库可以识别任何格式的日期
- 使用jQuery或javascript转换日期格式(不使用任何lib)
- Regex:匹配日期和冒号之间的任何字符串
- 如何制作<输入类型=“;日期“>所有浏览器都支持吗?任何替代方案
- 如何检查数组中的任何日期是否在日期范围内
- Javascript日期没有任何意义
- Casperjs然后点击打开日期picker,但无法检索日历中的任何内容
- 转换任何日期插入到ISO格式没有时间戳在JavaScript
- 是否有任何javascript或jquery函数来确定字符串是数字还是日期
- 要显示数据的最后一周和任何两个日期之间的数据,我正在努力
- 任何时间js日期选择错误
- 为任何日期范围过滤JSON格式的数据