2014-11-05 37 views
0

目前,我有此代码可以让我更改特殊的圣诞交货日期。今年,我们提供3个交付日期 - 21,22和23日。我如何操作此代码以允许这样的范围?如何在Js中创建交货日期范围

当前代码:

setValidDaysForNationwideDelivery: function(date) { 
    if ((date.getMonth() == 11) && (date.getDate() == 21)) { 
     return [true, ""]; 
    } 
} 

回答

1

只需使用一个范围:

setValidDaysForNationwideDelivery: function(date) { 
if (date.getMonth() == 11 && date.getDate() >= 21 && date.getDate() <= 23) { 
return [true, ""]; } 

边注:额外()围绕每个比较(date.getMonth() == 11)绝对没有任何影响,我已删除他们在上面。

0

像这样:

setValidDaysForNationwideDelivery: function(date) { 
    date = date.getMonth() + '-' + date.getDate(); 
    var range = ['11-21', '11-22', '11-23']; 
    if (range.indexOf(date) !== -1) { 
    return [true, ""]; 
    } 
} 

这种方法的优点是:明年你将只需要在remplace范围变量的日期,你可以把你想要的任何东西。

0

创建代表开始和结束日期的JavaScript日期对象,然后检查日期使用大于/小于比较范围之内​​:

setValidDaysForNationwideDelivery: function(date) { 
    var d1 = new Date(2014, 11, 21); 
    var d2 = new Date(2014, 11, 23); 
    return [d1 <= date && date <= d2, ""]; 
} 

注:如果您使用的是与jQuery UI此功能datepicker然后它必须返回一个数组。还要注意,尽管<>适用于日期比较,=====不适用。