2014-05-23 143 views
0

我正在使用下面的jQuery插件:https://github.com/xdan/datetimepicker來實現開始和結束日期,其中結束不能在開始之前,並且開始不能在結束之後。我的代碼如下,基於文檔中的示例(我需要時間以及日期):http://xdsoft.net/jqplugins/datetimepicker/#rangejQuery datetimepicker插件範圍bug

問題是沒有設置限制。從代碼我可以看到https://github.com/xdan/datetimepicker/blob/master/jquery.datetimepicker.js#L509要求minDatemaxDate在他們面前有一個-+。這是一個錯誤還是我錯過了什麼?

var format = "Y-m-d H:i:s"; 
var startSelector = "input[type='datetime-picker'][name='start']"; 
var endSelector = "input[type='datetime-picker'][name='end']"; 
$(startSelector).datetimepicker({ 
    format : format, 
    onShow : function(ct) { 
     var val = $(endSelector).val(); 
     console.log('start max val: '+val); 
     var opts = { 
      formatDate : "Y-m-d", 
      maxDate : val ? '+'+val.split(' ')[0] : false 
     }; 
     this.setOptions(opts); 
    }, 
}); 
$(endSelector).datetimepicker({ 
    format : format, 
    onShow : function(ct) { 
     var val = $(startSelector).val(); 
     console.log('end min val: '+val); 
     var opts = { 
      formatDate : "Y-m-d", 
      minDate : val ? '-'+ 
        val.split(' ')[0] : false 
     }; 

     this.setOptions(opts); 
    }, 
}); 
+1

的你突出顯示的行並不是說'minDate'和'maxDate'需要以' - +'開頭。它用於規範化他們從這些字符開始的值。後面的代碼使用該值,如果此代碼沒有替換它,這可能是原始設置。 – Barmar

+0

謝謝,刪除了' - +'修復了它。 –

回答

6

您可以使用默認腳本http://xdsoft.net/jqplugins/datetimepicker/ ,但你應該知道,它的格式Y/M/d正常工作。

如果要更改格式,不要忘記再次把你的格式旁邊的最小/最大日

這裏是我的腳本示例它完美地適用於任何格式:

jQuery(function(){ 
jQuery('#date_timepicker_start').datetimepicker({ 
    format:'d/m/Y - H:i', 
    onShow:function(ct){ 
    this.setOptions({ 
    minDate:0, 
    maxDate:jQuery('#date_timepicker_end').val()?jQuery('#date_timepicker_end').val():false,formatDate:'d/m/Y - H:i' 
    }) 
    }, 
    timepicker:true, 
    step : 60, 
    lang: 'en', 
}); 
jQuery('#date_timepicker_end').datetimepicker({ 
    format:'d/m/Y - H:i', 
    onShow:function(ct){ 
    this.setOptions({ 
    minDate:jQuery('#date_timepicker_start').val()?jQuery('#date_timepicker_start').val():false,formatDate:'d/m/Y - H:i' 
    }) 
    }, 
    timepicker:true, 
    step : 60, 
    lang: 'en', 
}); 
}); 
+0

我發現將'value:jQuery('#date_timepicker_start')。val()''添加到'minDate'之前的#date_timepicker_end'this.setOptions'值的開始位置會很有幫助,填充。除此之外,這個解決方案效果很好。 – kayatela

+0

你是對的謝謝你 –