在 Bootstrap 日期选择器中禁用当前日期后 180 天
Disabling 180 days after the current date in Bootstrap datepicker
正在处理一个表单,借此我使用 bootstrap 日期选择器向用户显示日期。有 2 个输入字段显示日期,主要是 departure date 和 return date.
当用户选择出发日期(在日期选择器上)时,我想捕获所选日期并在 return 日期字段中禁用所选出发日期后 180 天。
~请帮忙?
出发日期和return日期
<!-- Departure date-->
<div class="form-line registar2 love {{ $errors->has('departure_date') ? ' has-error' : '' }}">
<input type="text" placeholder="Departure Date*" class="form-input dateTextBox" name="departure_date" id="departureDate" value="{{ old('departure_date') }}" required>
</div>
<!--End departure-->
<!-- Return date-->
<div class="form-line registar2 move {{ $errors->has('return_date') ? ' has-error' : '' }}">
<input type="text" placeholder="Return Date*" class="form-input dateTextBox" name="return_date" id="returnDate" value="{{ old('return_date') }}" required>
</div>
<!-- End return date-->
Javascript 日期选择器的逻辑
//Departure date
$( function() {
$( "#departureDate" ).datepicker({
changeMonth: true,
changeYear: true,
//yy-mm-dd
dateFormat: 'yy-mm-dd',
minDate: '0',
maxDate: "+20Y",
});
});
//return date
$( function() {
$( "#returnDate" ).datepicker({
changeMonth: true,
changeYear: true,
//yy-mm-dd
dateFormat: 'yy-mm-dd',
minDate: '0',
maxDate: "+180D",
});
});
//End dob
试试这个...
$( function() {
$( "#departureDate" ).datepicker({
changeMonth: true,
changeYear: true,
//yy-mm-dd
dateFormat: 'yy-mm-dd',
minDate: '0',
maxDate: "+20Y",
}).on('changeDate', function (selected) {
var minDate=new Date(selected.date.getFullYear(),selected.date.getMonth(),selected.date.getDate()+180)
$('#returnDate').datepicker('setStartDate', minDate);
});
});
$( function() {
$( "#returnDate" ).datepicker({
changeMonth: true,
changeYear: true,
//yy-mm-dd
dateFormat: 'yy-mm-dd',
minDate: '0',
maxDate: "+180D",
});
});
您必须使用 moment.js
来计算 JavaScript 中的日期。参考代码根据选择的选择器日期设置另一个日期选择器。
$("#ret").hide();
$("#dep").datepicker({
dateFormat: 'dd/mm/yy',
minDate: 0,
onSelect: function(dateText) {
$("#ret").show();
$("#ret").val('');
var maxDate = moment(dateText, "DD/MM/YYYY").add(180, 'days').format("DD/MM/YYYY");
$("#ret").datepicker('option', 'maxDate', maxDate);
$("#ret").datepicker('option', 'minDate', dateText);
}
});
$("#ret").datepicker({
dateFormat: 'dd/mm/yy'
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
<p>Departure Date: <input type="text" id="dep" /></p>
<p>Return Date: <input type="text" id="ret" /></p>
正在处理一个表单,借此我使用 bootstrap 日期选择器向用户显示日期。有 2 个输入字段显示日期,主要是 departure date 和 return date.
当用户选择出发日期(在日期选择器上)时,我想捕获所选日期并在 return 日期字段中禁用所选出发日期后 180 天。
~请帮忙?
出发日期和return日期
<!-- Departure date-->
<div class="form-line registar2 love {{ $errors->has('departure_date') ? ' has-error' : '' }}">
<input type="text" placeholder="Departure Date*" class="form-input dateTextBox" name="departure_date" id="departureDate" value="{{ old('departure_date') }}" required>
</div>
<!--End departure-->
<!-- Return date-->
<div class="form-line registar2 move {{ $errors->has('return_date') ? ' has-error' : '' }}">
<input type="text" placeholder="Return Date*" class="form-input dateTextBox" name="return_date" id="returnDate" value="{{ old('return_date') }}" required>
</div>
<!-- End return date-->
Javascript 日期选择器的逻辑
//Departure date
$( function() {
$( "#departureDate" ).datepicker({
changeMonth: true,
changeYear: true,
//yy-mm-dd
dateFormat: 'yy-mm-dd',
minDate: '0',
maxDate: "+20Y",
});
});
//return date
$( function() {
$( "#returnDate" ).datepicker({
changeMonth: true,
changeYear: true,
//yy-mm-dd
dateFormat: 'yy-mm-dd',
minDate: '0',
maxDate: "+180D",
});
});
//End dob
试试这个...
$( function() {
$( "#departureDate" ).datepicker({
changeMonth: true,
changeYear: true,
//yy-mm-dd
dateFormat: 'yy-mm-dd',
minDate: '0',
maxDate: "+20Y",
}).on('changeDate', function (selected) {
var minDate=new Date(selected.date.getFullYear(),selected.date.getMonth(),selected.date.getDate()+180)
$('#returnDate').datepicker('setStartDate', minDate);
});
});
$( function() {
$( "#returnDate" ).datepicker({
changeMonth: true,
changeYear: true,
//yy-mm-dd
dateFormat: 'yy-mm-dd',
minDate: '0',
maxDate: "+180D",
});
});
您必须使用 moment.js
来计算 JavaScript 中的日期。参考代码根据选择的选择器日期设置另一个日期选择器。
$("#ret").hide();
$("#dep").datepicker({
dateFormat: 'dd/mm/yy',
minDate: 0,
onSelect: function(dateText) {
$("#ret").show();
$("#ret").val('');
var maxDate = moment(dateText, "DD/MM/YYYY").add(180, 'days').format("DD/MM/YYYY");
$("#ret").datepicker('option', 'maxDate', maxDate);
$("#ret").datepicker('option', 'minDate', dateText);
}
});
$("#ret").datepicker({
dateFormat: 'dd/mm/yy'
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
<p>Departure Date: <input type="text" id="dep" /></p>
<p>Return Date: <input type="text" id="ret" /></p>