Php 使用数据库中的开始日期和结束日期,在引导数据采集器中禁用不在startDate和endDate范围内的其他日期?
问候大家, 我遇到一个问题,需要将日期选择器设置为在学期开始日期和学期结束日期之后,如下所示。 关于如何在datepicker中开始日期和结束日期,我知道的最简单的方法是使用以下代码:Php 使用数据库中的开始日期和结束日期,在引导数据采集器中禁用不在startDate和endDate范围内的其他日期?,php,ajax,datepicker,bootstrap-datepicker,Php,Ajax,Datepicker,Bootstrap Datepicker,问候大家, 我遇到一个问题,需要将日期选择器设置为在学期开始日期和学期结束日期之后,如下所示。 关于如何在datepicker中开始日期和结束日期,我知道的最简单的方法是使用以下代码: $(document).ready(function(){ $('#appointment_date').datepicker({ format: "yyyy-mm-dd", daysOfWeekDisabled: [0, 6],
$(document).ready(function(){
$('#appointment_date').datepicker({
format: "yyyy-mm-dd",
daysOfWeekDisabled: [0, 6],
startDate: new Date('2019-1-14'),
endDate: new Date('2019-5-14')
});
});
但是,我应该使用AJAX和PHP来限制日期。因此,我将代码修改如下:
$('#appointment_date').datepicker({
format: "yyyy-mm-dd",
daysOfWeekDisabled: [0, 6],
$.ajax({
type: 'POST',
url: '../ajax/ajax-get-semester-date.php',
data: {'appointment_date': $('#appointment_date').val()},
success: function (data)
{
$('#appointment_date').append(data);
}
// startDate: new Date('2019-1-14'),
// endDate: new Date('2019-5-16')
});
});
我不确定应该通过数据传递什么ID,也不确定如何附加startDate和endDate的数据。请帮我解决这个问题。提前谢谢 您可以这样做:Datepicker有一个选项maxDate和minDate
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Datepicker - Restrict date range</title>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<!-- <link rel="stylesheet" href="/resources/demos/style.css"> -->
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>
<p>Date: <input type="text" id="datepicker"></p>
<script>
$( function() {
$("#datepicker").datepicker({
dateFormat:'yy-mm-dd',
minDate:'2019-04-5',
maxDate:'2019-04-10'
});
});
</script>
</body>
</html>
jQuery UI日期选择器-限制日期范围
日期:
$(函数(){
$(“#日期选择器”)。日期选择器({
日期格式:'yy-mm-dd',
minDate:'2019-04-5',
最大日期:'2019-04-10'
});
});
更新
我终于找到了我问题的答案。只是在这里分享给大家的知识。我提到了一个答案
在PHP端,执行以下操作:
<?php
//select semester date
$select_date_query = "SELECT semester_end FROM semester ORDER BY semester_end ASC";
$select_date_stmt = $db->prepare($select_date_query);
$select_date_stmt->execute();
if($select_date_stmt)
{
$semDates = array();
while ($row = $select_date_stmt->fetch(PDO::FETCH_ASSOC))
{
$semDates[] = $row['semester_end'];
}
$maxDate = explode("-", end($semDates));
$maxDate[1] -= 1;
}
?>
<script>
$(document).ready(function(){
$('#appointment_date').datepicker({
dateFormat:'yy-mm-dd',
beforeShowDay: $.datepicker.noWeekends,
minDate: 0,
maxDate: new Date(<?php echo($maxDate[0]);?>,<?php echo($maxDate[1]);?>,<?php echo($maxDate[2]); ?>)
});
});
</script>
我之前使用的日期选择器是引导日期选择器的一部分。我之前忘记删除datepicker.js,这解释了为什么Rasa Mohamed和vwadhwa3提供的答案不起作用。谢谢你们愿意回答,尽管这不是我想要的
在JQuery datepicker端,执行以下操作:
<?php
//select semester date
$select_date_query = "SELECT semester_end FROM semester ORDER BY semester_end ASC";
$select_date_stmt = $db->prepare($select_date_query);
$select_date_stmt->execute();
if($select_date_stmt)
{
$semDates = array();
while ($row = $select_date_stmt->fetch(PDO::FETCH_ASSOC))
{
$semDates[] = $row['semester_end'];
}
$maxDate = explode("-", end($semDates));
$maxDate[1] -= 1;
}
?>
<script>
$(document).ready(function(){
$('#appointment_date').datepicker({
dateFormat:'yy-mm-dd',
beforeShowDay: $.datepicker.noWeekends,
minDate: 0,
maxDate: new Date(<?php echo($maxDate[0]);?>,<?php echo($maxDate[1]);?>,<?php echo($maxDate[2]); ?>)
});
});
</script>
$(文档).ready(函数(){
$(“#约会日期”)。日期选择器({
日期格式:'yy-mm-dd',
在ShowDay之前:$.datepicker.noWeekends,
minDate:0,
maxDate:新日期(,,)
});
});
我不清楚你的问题。禁用两个单独的日期?或者禁用给定的开始日期到结束日期?@Rasa Mohamed:禁用开始日期和结束日期之外的日期。并启用从2019年1月14日到2019年5月14日的日期。@RasaMohamed这是有效的解决方案。您需要根据您的需要更改minDate和maxDaterequirement@vwadhwa那就好了。。。我认为这是两个不同的日期,这就是为什么我这样回答:-)@Naz Azhar我认为这个问题要求两个不同的日期,但实际期望是启用从开始日期到结束日期的一组日期