为Daterangepicker

时间:2016-01-04 09:36:13

标签: php jquery html daterangepicker

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

我为一些用户开发了一个后端,他们可以查看/编辑整个选定年份的酒店房间的可用性。我正在使用HTML / PHP / MySQL来显示他们想要的年份的可用性值。这种形式有365个输入(每个输入代表一天。这意味着有365个输入,具体取决于所选的年份)。然后我使用daterangepicker 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');
}
?>

无论如何,这是一次简报。我要做的是,将最小和最大日期设置为daterangepicker 仅适用于所选年份。如果他们查看2016年,我想将daterangepicker限制为2016年1月1日至12月31日。明年2017年相同,等等。

正如你所看到的,动态地抓住了几年,所以我需要一个“脚本”,即使我们在2018年或2020年等,daterangepicker也能正常工作。

对于这篇长篇文章我很抱歉,如果有人有更好的解决方案/想法,我试图解释的不仅仅是需要的。

提前谢谢

1 个答案:

答案 0 :(得分:1)

我个人会建议您使用某种类型的库。通常手动执行此操作(根据我的个人经验)并且可用的库通常非常好。