【问题标题】:Restricting second date to + days in jQuery UI Datepicker在jQuery UI Datepicker中将第二个日期限制为+天
【发布时间】:2016-11-23 15:16:40
【问题描述】:

这之前被标记为重复,我没有得到任何答案。它不是重复的,所以请不要这样标记它,另一篇文章与将第二个日期限制为第一个选择中当前选择的日期有关,我不想这样做,已经有了。我正在尝试将 +3days 添加到第二个日历/日期。因此,如果我在第一个日期和第二个日期选择今天,我应该无法选择该日期 + 3 天的日期。

示例:从日期是 2016 年 12 月 21 日,然后在第二个字段中,我不能选择早于 2016 年 12 月 24 日的日期。

我的日期选择器中的日期范围有问题。我需要在选定的“carrental_from_date”之后至少 3 天获得“carrental_to_date”,但似乎没有任何效果。

我已尝试将“to_date”上的“minDate”更改为“+3d”,但似乎没有成功,我确实在这里找到了一个示例:http://jsfiddle.net/jquerybyexample/dxbtp/494/ 但我无法获得那也有效。不知道我在这里做错了什么,希望你们中的一个天才能够指出我正确的方向。

jQuery('#carrental_from_date' + element_id).datepicker({
            //showOn: "both",
            beforeShow: carrental_customRange,
            dateFormat: "<?php echo date_format_js(isset($theme_options['date_format']) ? $theme_options['date_format'] : ''); ?>",
            firstDay: "<?php echo (isset($theme_options['date_format_first_day']) ? (int) $theme_options['date_format_first_day'] : 0); ?>",
            dayNamesMin: ["<?php echo CarRental::t('Su') ?>", "<?php echo CarRental::t('Mo') ?>", "<?php echo CarRental::t('Tu') ?>", "<?php echo CarRental::t('Wu') ?>", "<?php echo CarRental::t('Th') ?>", "<?php echo CarRental::t('Fr') ?>", "<?php echo CarRental::t('Sa') ?>"],
            monthNames: ["<?php echo CarRental::t('January') ?>", "<?php echo CarRental::t('February') ?>", "<?php echo CarRental::t('March') ?>", "<?php echo CarRental::t('April') ?>", "<?php echo CarRental::t('May') ?>", "<?php echo CarRental::t('June') ?>", "<?php echo CarRental::t('July') ?>", "<?php echo CarRental::t('August') ?>", "<?php echo CarRental::t('September') ?>", "<?php echo CarRental::t('October') ?>", "<?php echo CarRental::t('November') ?>", "<?php echo CarRental::t('December') ?>"],
            dayNames: ["<?php echo CarRental::t('Sunday') ?>", "<?php echo CarRental::t('Monday') ?>", "<?php echo CarRental::t('Tuesday') ?>", "<?php echo CarRental::t('Wednesday') ?>", "<?php echo CarRental::t('Thursday') ?>", "<?php echo CarRental::t('Friday') ?>", "<?php echo CarRental::t('Saturday') ?>"],
            nextText: "<?php echo CarRental::t('Next') ?>",
            prevText: "<?php echo CarRental::t('Prev') ?>",
            minDate: 0,
            onSelect: function() {
                carrental_update_business_hours(element_id);
            }
        });

        jQuery('#carrental_to_date' + element_id).datepicker({
            //showOn: "both",
            beforeShow: carrental_customRange,
            dateFormat: "<?php echo date_format_js(isset($theme_options['date_format']) ? $theme_options['date_format'] : ''); ?>",
            firstDay: "<?php echo (isset($theme_options['date_format_first_day']) ? (int) $theme_options['date_format_first_day'] : 0); ?>",
            dayNamesMin: ["<?php echo CarRental::t('Su') ?>", "<?php echo CarRental::t('Mo') ?>", "<?php echo CarRental::t('Tu') ?>", "<?php echo CarRental::t('Wu') ?>", "<?php echo CarRental::t('Th') ?>", "<?php echo CarRental::t('Fr') ?>", "<?php echo CarRental::t('Sa') ?>"],
            monthNames: ["<?php echo CarRental::t('January') ?>", "<?php echo CarRental::t('February') ?>", "<?php echo CarRental::t('March') ?>", "<?php echo CarRental::t('April') ?>", "<?php echo CarRental::t('May') ?>", "<?php echo CarRental::t('June') ?>", "<?php echo CarRental::t('July') ?>", "<?php echo CarRental::t('August') ?>", "<?php echo CarRental::t('September') ?>", "<?php echo CarRental::t('October') ?>", "<?php echo CarRental::t('November') ?>", "<?php echo CarRental::t('December') ?>"],
            dayNames: ["<?php echo CarRental::t('Sunday') ?>", "<?php echo CarRental::t('Monday') ?>", "<?php echo CarRental::t('Tuesday') ?>", "<?php echo CarRental::t('Wednesday') ?>", "<?php echo CarRental::t('Thursday') ?>", "<?php echo CarRental::t('Friday') ?>", "<?php echo CarRental::t('Saturday') ?>"],
            nextText: "<?php echo CarRental::t('Next') ?>",
            prevText: "<?php echo CarRental::t('Prev') ?>",
            minDate: 0,
            onSelect: function() {
                carrental_update_business_hours(element_id);
            }
        });

【问题讨论】:

    标签: javascript jquery jquery-ui jquery-ui-datepicker


    【解决方案1】:

    来自minDate 的 API:

    最小的可选日期。当设置为 null 时,没有最小值。 支持多种类型:

    日期:包含最短日期的日期对象。

    数字:从今天开始的天数。例如,2 代表从今天起两天,-1 代表昨天。

    字符串: 格式由 dateFormat 选项定义的字符串,或相对日期。相对日期必须包含值和周期对;有效期间是“y”代表年,“m”代表月,“w”代表周,“d”代表天。例如,“+1m +7d”表示从今天起 1 个月零 7 天。

    我建议使用 String 方法:+3d。在 From 字段中选择日期后,您可以将该值设置为 To 字段的日期。

    来自您的工作示例:http://jsfiddle.net/dxbtp/871/

    jQuery

    $(document).ready(function() {
      $("#txtFromDate").datepicker({
        onSelect: function(selected) {
          $("#txtToDate").datepicker("setDate", selected);
          $("#txtToDate").datepicker("option", "minDate", "+3d");
        }
      });
    
      $("#txtToDate").datepicker({
        onSelect: function(selected) {
          $("#txtFromDate").datepicker("setDate", selected);
          $("#txtFromDate").datepicker("option", "maxDate", "-3d")
        }
      });
    });
    

    【讨论】:

      猜你喜欢
      • 2013-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多