0
我有一種情況,用戶只能選擇7天的日期範圍。Eonasdan Bootstrap鏈接日期時間選取器不按預期方式工作
因此,如果開始日期爲01-02-2016 00:00
最大結束日期應爲06-02-2016 23:59
然後,如果用戶選擇08-02-2016 00:00
的最大結束日期應爲14-02-2016 23:59
所以爲了這個,我現在用的日期時間選取: http://eonasdan.github.io/bootstrap-datetimepicker/#linked-pickers
我遇到的問題是當我執行第一個條件時,它工作正常 - 但是當我選擇第二個條件時,它會在控制檯中給出一個錯誤。
這裏是我的代碼:
$(function() {
$('#HistoryStartDate').datetimepicker({
format: 'DD/MM/YYYY HH:mm',
allowInputToggle: true,
useCurrent: true
}).on('dp.change', function(e) {
$('#HistoryEndDate').data('DateTimePicker').minDate(e.date);
var m = moment(new Date(e.date));
m.add(6, 'days');
$('#HistoryEndDate').data('DateTimePicker').maxDate(m);
});
$('#HistoryEndDate').datetimepicker({
format: 'DD/MM/YYYY HH:mm',
allowInputToggle: true,
useCurrent: true
});
});
這裏是的jsfiddle:https://jsfiddle.net/xsmsym3m/
編輯:
我找到了一個解決辦法這似乎並不像一個好的解決方案,因爲它會在某些情況下失敗,但我在這裏發佈(https://jsfiddle.net/v18gfo4s/):
$(function() {
$('#HistoryStartDate').datetimepicker({
format: 'DD/MM/YYYY HH:mm',
allowInputToggle: true,
useCurrent: true
}).on('dp.change', function(e) {
// Adding two years so I can set the Min Date
var tt = moment(new Date(e.date));
tt.add(2, 'years');
$('#HistoryEndDate').data('DateTimePicker').maxDate(tt);
// Set the Min date
$('#HistoryEndDate').data('DateTimePicker').minDate(e.date);
//Set the Max Date
var m = moment(new Date(e.date));
m.add(5, 'days');
m.add(23, 'hours');
m.add(59, 'minutes');
m.add(59, 'seconds');
$('#HistoryEndDate').data('DateTimePicker').maxDate(m);
// Set End Date
var temp = moment(new Date(e.date));
temp.add(23, 'hours');
temp.add(59, 'minutes');
temp.add(59, 'seconds');
$('#HistoryEndDate').data('DateTimePicker').date(temp);
});
$('#HistoryEndDate').datetimepicker({
format: 'DD/MM/YYYY HH:mm',
allowInputToggle: true,
useCurrent: false
});
});
對不起,這是我的誤解。但是,你認爲「看起來不是一個好的解決方案」意味着什麼。你想盡量減少代碼? –
@ManhLe我的意思是這是一個解決方法 - 添加2年設置最短日期不應該是一個解決方案。 –