【问题标题】:jQuery Calendar with custom date ranges具有自定义日期范围的 jQuery 日历
【发布时间】:2012-03-10 02:06:20
【问题描述】:

我进行了搜索,有些答案确实符合我的问题,但还不够接近。

我正在组建一个预订系统,并且在 MySQL 数据库中有一系列“关税”。

所有这些关税都有一个日期范围(以及与此特定问题无关的其他值,例如每晚价格等)。

使用 jQuery.datePicker 我想知道是否有一种方法可以只允许选择 MySQL 数据库中日期范围内的日期,并且不包含在这些范围内的任何日期都被删除/无法选择。

“关税”表的布局如下:

id        date_from        date_to        color       price       min
1         2012/02/01       2012/03/15     red         10          2
2         2012/03/16       2013/04/10     green       7           0
2         2012/05/16       2013/06/10     green       7           0

因此,应选择的唯一日期是 2012 年 2 月 1 日至 2012 年 4 月 10 日和 2012 年 5 月 16 日至 2012 年 6 月 10 日,其余日期为空白。颜色、价格和最小值与这个问题无关。

任何帮助或指出正确的方向将不胜感激!

编辑:

在进一步搜索后,我最终在此处找到了解决方案,结果我自己摸了摸自己。对于其他偶然发现我的问题并需要解决方案的人,请转到此处:

jQuery ui: multiple ranges for date picker?

感谢那些回答!

【问题讨论】:

  • 我建议将这些日期范围存储到一个数组中。然后,当用户单击日期时,比较是否允许($.inArray...)并显示一条消息。如果不允许,请显示一条消息并保留日期选择器。

标签: php jquery mysql calendar jquery-ui-datepicker


【解决方案1】:

jQuery 日期选择器具有“minDate”和“maxDate”参数。

$(selector).datepicker({
    'minDate': new Date(2012, 2, 1),
    'maxDate': new Date(2012, 3, 15)
});

或在您的 php 文件中:

<script type="text/javascript">
$(function(){
    $("#date").datepicker({
        'dateFormat': 'm/d/yy',
        'minDate': new Date(<?php echo $minDate->format('Y, m, d'); ?>),
        'maxDate': new Date(<?php echo $maxDate->format('Y, m, d'); ?>)
    });
});
</script>

【讨论】:

    猜你喜欢
    • 2015-11-11
    • 1970-01-01
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多