2016-01-04 30 views
1

尽管我已经找到了一些对我的问题的一般答案,但找不到解决我的具体问题的任何问题。设置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

你能更具体吗?像什么样的图书馆?已知的图书馆?我自己的图书馆? – GeorgeGeorgitsis

+0

,我指的这样的事情:
自举库(https://bootstrap-datepicker.readthedocs.org/en/latest/)
[名单](HTTP://www.jqueryrain。 com/demo/jquery-date-time-picker /)
通常他们有日期范围限制 –