jQuery datetimepicker设置开始时的结束日期

时间:2016-12-12 19:32:20

标签: javascript jquery html jquery-ui

如何在用户选择开始时间时更改结束日期?我想禁用开始时间之前的几天。它是家庭作业,但我是jquery的新手。

感谢。这是我设法工作的代码,但我不知道该改变什么。

   <script>
        $(document).ready(function() {
          $('#start').val(moment(start).format('YYYY-MM-DD'));
          $('#end').val(moment().add(+1, 'days').format('YYYY-MM-DD'));
          $("#checkAll").click(function () {
            $('input:checkbox').not(this).prop('checked', this.checked);
          });
          $("#checkAllEdit").click(function () {
            $('input:checkbox').not(this).prop('checked', this.checked);
          });

          $("#start, #end").datepicker('setDate', new Date());
          $("#start, #end").datepicker({
            dateFormat: 'yy-mm-dd'
          });
        });
    </script>

工作版本:

          $('body').on('focus', ".dpicker", function () {
            $(this).datepicker();
          });

          $(function () {
            $("#start").datepicker({
              minDate: 1,
              changeMonth: true,
              dateFormat: 'yy-mm-dd',
              onClose: function (selectedDate, instance) {
                if (selectedDate != '') {
                  $("#end").datepicker("option", "minDate", selectedDate);
                  var date = $.datepicker.parseDate(instance.settings.dateFormat, selectedDate, instance.settings);
                  date.setMonth(date.getMonth() + 3);
                  var minDate2 = new Date(selectedDate);
                  minDate2.setDate(minDate2.getDate() + 1);

                  $("#end").datepicker("option", "minDate", minDate2);
                  $("#end").datepicker("option", "maxDate", date);
                }
              }
            });
            $("#end").datepicker({
              minDate: 1,
              changeMonth: true,
              dateFormat: 'yy-mm-dd',
              onClose: function (selectedDate) {
                $("#star").datepicker("option", "maxDate", selectedDate);
              }
            });


          });

1 个答案:

答案 0 :(得分:2)

您可以尝试添加 minDate:0 来设置今天的最短日期

$("#start, #end").datepicker({
    dateFormat: 'yy-mm-dd',
    minDate: 0 /* This will be today */
});

如果您想将minDate添加到其他日期,您可以使用 新日期(2007年,1 - 1,1)例如

$("#start, #end").datepicker({
    dateFormat: 'yy-mm-dd',
    minDate: new Date(2007, 1 - 1, 1)
});

编辑回答评论:

如果您想设置结束日期,则可以使用 setDate

$("#start, #end").datepicker({
    dateFormat: 'yy-mm-dd',
    setDate: new Date(2016,10,03)
});

似乎您希望结束日期为开始日期后1天,然后取开始日期值

var startDate = $('#start').datepicker('getDate') + 1; /* Get start date and add one day */
$('#end').datepicker({
    dateFormat: 'yy-mm-dd',
    setDate: startDate
});

进一步阅读:https://api.jqueryui.com/datepicker/#option-minDate