foo*_*zed 9 javascript arrays jquery date
我正在尝试检查jQuery UI datepicker中的日期是否属于假日日期数组.无法弄清楚我做错了什么:(
var holidayArray2013 = [new Date('October 3, 2013 00:00:00 GMT+0200'), new Date('December 25, 2013 00:00:00 GMT+0100'), new Date('December 26, 2013 00:00:00 GMT+0100')];
var DateOfOrder = $('#datepicker').datepicker('getDate');
if ($.inArray(DateOfOrder, holidayArray2013) > -1) {
console.log("is holiday");
}
Run Code Online (Sandbox Code Playgroud)
编辑:console.log(DateOfOrder);返回Thu Oct 03 2013 00:00:00 GMT+0200就像holidayArray2013[0]但$.inArray(DateOfOrder, holidayArray2013)仍然返回-1
Jam*_*iec 21
你得到一个假阴性,因为比较2个日期对象比较他们的引用而不是你想象的值.
有几个选项,您可以将结果存储Date.getTime()在数组中,这只是日期的数字表示:
var holidayArray2013 = [
new Date('October 3, 2013 00:00:00 GMT+0200').getTime(),
new Date('December 25, 2013 00:00:00 GMT+0100').getTime(),
new Date('December 26, 2013 00:00:00 GMT+0100').getTime()];
Run Code Online (Sandbox Code Playgroud)
然后比较一下:
var DateOfOrder = n$('#datepicker').datepicker('getDate').getTime();
if ($.inArray(DateOfOrder, holidayArray2013) > -1) ...
Run Code Online (Sandbox Code Playgroud)
这很好,如下所示:http://jsfiddle.net/rRJer/
但是,如果您被限制为不更改假日数组,则可以循环以尝试找到正确的日期值:
var isHoliday = false;
for(var i=0;i<holidayArray2013.length;i++){
if(holidayArray2013[i].getTime() == DateOfOrder.getTime()){
isHoliday = true;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
演示在这里:http://jsfiddle.net/3R6GD/
| 归档时间: |
|
| 查看次数: |
20793 次 |
| 最近记录: |