[英]Modifying linked datetimepicker minDate maxDate function
I have implemented a pair of linked datetimepickers . 我实现了一对链接的datetimepickers 。 The min and maxDate function works fine, but I want to modify it so that even if a user picks in one input a date that is off limit, the other input will not prevent the user from doing so but renew the min or maxDate accordingly.
min和maxDate函数可以正常工作,但是我想对其进行修改,以便即使用户在一个输入中选择了一个超出限制的日期,另一输入也不会阻止用户这样做,而是相应地更新min或maxDate。 (For instance, if a user picked '10am' and '2pm' and s/he changed to '3pm', the second field will change to say, 4pm.) I'm not sure how I can do that?
(例如,如果用户选择了“上午10点”和“下午2点”,而他/她更改为“下午3点”,则第二个字段将更改为下午4点。)我不确定该怎么做?
The pickers html: 选择器html:
<div class='col-lg-6'>
<div class="form-group">
<div class='input-group date' id='datetimepicker6'>
<input type='text' class="form-control" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
<div class='col-lg-6'>
<div class="form-group">
<div class='input-group date' id='datetimepicker7'>
<input type='text' class="form-control" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
The js: js:
$(function () {
$('#datetimepicker6').datetimepicker();
$('#datetimepicker7').datetimepicker({
//useCurrent: false //Important! See issue #1075
//btw, it is suggested to set useCurrent to false but the picker is not working when it's set to false so I didn't..
});
$("#datetimepicker6").on("dp.change", function (e) {
$('#datetimepicker7').data("DateTimePicker").minDate(e.date);
});
$("#datetimepicker7").on("dp.change", function (e) {
$('#datetimepicker6').data("DateTimePicker").maxDate(e.date);
});
});
EDITED: 编辑:
I tried something but it doesn't seem relevant: 我尝试了一些东西,但似乎并不相关:
$(function () {
$('#datetimepicker1').datetimepicker({
format: 'LT'
});
$('#datetimepicker2').datetimepicker({
//useCurrent: false //Important! See issue #1075
format: 'LT'
});
//$("#datetimepicker1").on("dp.change", function (e) {
// $('#datetimepicker2').data("DateTimePicker").minDate(e.date);
//});
//$("#datetimepicker2").on("dp.change", function (e) {
// $('#datetimepicker1').data("DateTimePicker").maxDate(e.date);
//});
});
$('#datetimepicker1').datetimepicker({
//minDate: 0, // to disable past dates (skip if not needed)
onClose: function(selectedDate) {
// Set the minDate of 'to' as the selectedDate of 'from'
$('#datetimepicker2').data("DateTimePicker").minDate(selectedDate);
}
});
$('#datetimepicker2').datetimepicker();
Here is the working code. 这是工作代码。
HTML HTML
<div class="container">
<div class='col-md-5'>
<div class="form-group">
<div class='input-group date' id='datetimepicker6'>
<input type='text' class="form-control" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
<div class='col-md-5'>
<div class="form-group">
<div class='input-group date' id='datetimepicker7'>
<input type='text' class="form-control" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
</div>
JS JS
var timeDiff;
$(function () {
$('#datetimepicker6').datetimepicker();
$('#datetimepicker7').datetimepicker({
useCurrent: false //Important! See issue #1075
});
$("#datetimepicker6").on("dp.change", function (e) {
if (timeDiff) {
$('#datetimepicker7').data("DateTimePicker").date(e.date.add(timeDiff, 's'));
$('#datetimepicker7').data("DateTimePicker").minDate(false);
} else $('#datetimepicker7').data("DateTimePicker").minDate(e.date);
});
$("#datetimepicker7").on("dp.change", function (e) {
var CurrStartDate = new Date($('#datetimepicker6').data("DateTimePicker").date());
var CurrEndDate = new Date($('#datetimepicker7').data("DateTimePicker").date());
if (CurrEndDate) {
timeDiff = (CurrEndDate - CurrStartDate) / 1000;
}
$('#datetimepicker6').data("DateTimePicker").maxDate(e.date);
});
});
Note : Here as per your need i modified my code , but i am unable to set mindate
on second datetimepicker when the first picker is changed so i am just clearing mindate
on second picker. 注意 :这里根据您的需要,我修改了我的代码,但是当第一个选择器更改时,我无法在第二个datetimepicker上设置
mindate
,因此我只是在第二个选择器上清除了mindate
。 you better give it a try . 你最好试试看。
这里已经在StackOverFlow上提出了一个问题,该问题显示了如何动态更改选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.