首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定maxDate时排除beforeShowDay

确定maxDate时排除beforeShowDay
EN

Stack Overflow用户
提问于 2019-03-12 13:27:20
回答 1查看 38关注 0票数 0

我正在“尝试”在工作中创建一个系统,允许我的学生预订设备。我有两个日期输入,借用日期和归还日期。目前它是如何设置的,我有一堆日期,周末被禁用,学生们不能在借阅当天归还装备。我尝试的下一步是只为学生提供下一个可用日期的返还

例如,一个学生想要借周末用的装备,但星期一也是免费的一天,所以还书的日期只需要是星期二。

maxDate: 1//不考虑我在BeforeShowDay中禁用的所有日期

我希望这是有意义的,这是我当前混乱的代码。

代码语言:javascript
复制
< script type = "text/javascript" >
  jQuery(document).ready(function($) {
      $(function() {

        var publicd = ["4,3", "3,6", ];
        var term1 = ["15,4", "16,4", "17,4", "18,4", "19,4", "22,4", "23,4", "24,4", "25,4", "26,4", ];
        var term2 = ["7,7", "8,7", "9,7", "10,7", "11,7", "12,7", "15,7", "16,7", "17,7", "18,7", "19,7", ];
        var term3 = ["29,9", "30,9", "1,10", "2,10", "3,10", "4,10", "7,10", "8,10", "9,10", "10,10", "11,10"];
        var chrissy = ["2,12", "3,12", "4,12", "5,12", "6,12", "9,12", "10,12", "11,12", "12,12", "13,12", "16,12", "17,12", "18,12", "19,12", "20,12", "23,12", "24,12", "25,12", "26,12", "27,12", "30,12", "31,12", "1,1", "2,1", "3,1", "6,1", "7,1", "8,1", "9,1", "10,1", "13,1", "14,1", "15,1", "16,1", "17,1", "20,1", "21,1", "22,1", "23,1", "24,1", "27,1", "28,1", "29,1", "30,1", "31,1"];
        var pupil = ["8,3", "22,7", "15,11", "9,4", "27,5"];




        var combinedholidays = publicd.concat(term1, term2, term3, chrissy, pupil);

        function TotalHolidays(date) {
          var m = date.getMonth();
          var d = date.getDate();
          var currentdate = d + "," + (m + 1);
          for (var i = 0; i < combinedholidays.length; i++) {
            if ($.inArray(currentdate, combinedholidays) != -1) {
              return [false];
            }
          }
          var noWeekend = $.datepicker.noWeekends(date);
          return !noWeekend[0] ? noWeekend : [true];
        }


        $("#field_borrow").datepicker({
          dateFormat: 'yy/mm/dd',
          minDate: new Date(),
          beforeShowDay: TotalHolidays,
          showOn: "button",
          buttonImage: "https://jccamediaarts.edublogs.org/files/2018/06/if_calendar_285670-copy-2c5zvzr-2o5mcij-e1529025491810.png",
          buttonImageOnly: true,
          buttonText: "Select date",
          onSelect: function(date) {

            var selectedDate = new Date(date);
            var msecsInADay = 86400000;

            var endDate = new Date(selectedDate.getTime() + msecsInADay);


            $("#field_return").datepicker("option", "minDate", endDate);


          }
        });

        $("#field_return").datepicker({
          dateFormat: 'yy/mm/dd',
          beforeShowDay: TotalHolidays,
          showOn: "button",
          buttonImage: "https://jccamediaarts.edublogs.org/files/2018/06/if_calendar_285670-copy-2c5zvzr-2o5mcij-e1529025491810.png",
          buttonImageOnly: true,
          buttonText: "Select date"
        });

      }); <
      /script>

EN

回答 1

Stack Overflow用户

发布于 2019-05-27 06:03:18

我看不到您所显示的代码有任何特定的问题。我已经对它进行了一些更新,它似乎可以像预期的那样工作。

代码语言:javascript
复制
$(function() {
  var publicd = ["4,3", "3,6"];
  var term1 = ["15,4", "16,4", "17,4", "18,4", "19,4", "22,4", "23,4", "24,4", "25,4", "26,4", ];
  var term2 = ["7,7", "8,7", "9,7", "10,7", "11,7", "12,7", "15,7", "16,7", "17,7", "18,7", "19,7", ];
  var term3 = ["29,9", "30,9", "1,10", "2,10", "3,10", "4,10", "7,10", "8,10", "9,10", "10,10", "11,10"];
  var chrissy = ["2,12", "3,12", "4,12", "5,12", "6,12", "9,12", "10,12", "11,12", "12,12", "13,12", "16,12", "17,12", "18,12", "19,12", "20,12", "23,12", "24,12", "25,12", "26,12", "27,12", "30,12", "31,12", "1,1", "2,1", "3,1", "6,1", "7,1", "8,1", "9,1", "10,1", "13,1", "14,1", "15,1", "16,1", "17,1", "20,1", "21,1", "22,1", "23,1", "24,1", "27,1", "28,1", "29,1", "30,1", "31,1"];
  var pupil = ["8,3", "22,7", "15,11", "9,4", "27,5"];
  var dtFt = 'yy/mm/dd';

  var combinedHolidays = publicd.concat(term1, term2, term3, chrissy, pupil);

  function isHoliday(day, holidays) {
    var result = false;
    if ($.inArray(day, holidays) >= 0) {
      result = true;
    };
    return result;
  }

  function isWeekend(dt) {
    var result = $.datepicker.noWeekends(dt);
    return !result[0];
  }

  function TotalHolidays(date) {
    var m = date.getMonth();
    var d = date.getDate();
    var currentDate = d + "," + (m + 1);
    var result = [true, "weekDay"];
    if (isHoliday(currentDate, combinedHolidays) || isWeekend(date)) {
      result = [false, ""];
    }
    return result;
  }

  $("#borrow, #return").datepicker({
    dateFormat: dtFt,
    beforeShowDay: TotalHolidays,
    showOn: "button",
    buttonImage: "https://jccamediaarts.edublogs.org/files/2018/06/if_calendar_285670-copy-2c5zvzr-2o5mcij-e1529025491810.png",
    buttonImageOnly: true,
    buttonText: "Select date"
  });

  $("#borrow").datepicker("option", {
    minDate: new Date(),
    onSelect: function(date) {
      var selectedDate = new Date(date);
      var msecsInADay = 86400000;
      var endDate = new Date(selectedDate.getTime() + msecsInADay);
      $("#return").datepicker("option", "minDate", endDate);
    }
  });
});
代码语言:javascript
复制
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.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>
<p>Borrow Date: <input type="text" id="borrow" /></p>
<p>Return Date: <input type="text" id="return" /></p>

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55114695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档