Php 使用数据库中的开始日期和结束日期,在引导数据采集器中禁用不在startDate和endDate范围内的其他日期?

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],

问候大家,

我遇到一个问题,需要将日期选择器设置为在学期开始日期和学期结束日期之后,如下所示。

关于如何在datepicker中开始日期和结束日期,我知道的最简单的方法是使用以下代码:

$(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我认为这个问题要求两个不同的日期,但实际期望是启用从开始日期到结束日期的一组日期