为Daterangepicker设置每年的最小-最大值


Set min max values per year for Daterangepicker

虽然我已经找到了一些问题的一般答案,但我找不到任何解决我特定问题的答案。

我为一些用户开发了一个后端,他们可以在那里查看/编辑整个选定年份的酒店客房可用性。我使用HTML/PHP/MMySQL来显示他们想要的当年的可用性值。此表单中有365个输入(每个输入代表一天。这意味着根据所选年份,共有365个输出)。然后我使用日期范围选择器jQuery插件,这样他就可以选择日期范围并更改可用性值。他们只能查看/编辑当前下一年度的可用性。

我让他们从今年切换到明年,并使用以下代码向后切换:

<a class="btn btn-primary" href="https://domain.com/backend/availability/edit_availability/11/0">2016</a>
<a class="btn btn-default" href="https://domain.com/backend/availability/edit_availability/11/1">2017</a>

为了记录,我检查了最后一个href参数以了解所选年份。当前年度为/0,下一年度为/1。我只想显示当前和明年。

使用以下代码,他们选择一个日期范围,设置可用性编号,并用给定的可用性编号"填充"日历:

<input id="availability_dates" class="form-control" type="text" required="required" value="" name="availability_dates">
<input id="availability_number" class="form-control col-md-7 col-xs-12" type="text" name="availability_number">
<button id="fill-availabilities" class="btn btn-success" type="submit">Fill</button>
<script>
$('#availability_dates').daterangepicker(
 {
    format: 'DD/MM/YYYY'
 }, function (start, end, label) {
    console.log(start.toISOString(), end.toISOString(), label);
 });
</script>

我像这样抓住了他想要的一年:

<?php
if ($year == '0') {
   $display_year = date('Y');
   $other_year = date('Y', strtotime('+1 year'));
} else {
   $display_year = date('Y', strtotime('+1 year'));
   $other_year = date('Y');
}
?>

不管怎样,这只是一种简报。我要做的是,仅为所选年份设置日期范围选择器的最小和最大日期。如果他们查看2016年,我想将日期范围选择器限制为2016年1月1日至12月31日。下一年2017年也是如此,以此类推。

正如你所看到的,年份是动态抓取的,所以我需要一个"脚本",即使我们在2018年或2020年等,日期范围选择器也能工作。

很抱歉发了这么长的帖子,我已经试着解释了很多,以防有人有更好的解决方案/想法。

提前感谢

我个人建议您为此使用某种库。手动操作通常很麻烦(根据我的个人经验),而且可用的库通常都很好。