2014-11-05 36 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然後它必須返回一個數組。還要注意,儘管<>適用於日期比較,=====不適用。