【问题标题】:How to show date depends on from date如何显示日期取决于从日期
【发布时间】:2018-07-18 08:14:39
【问题描述】:

我有两个日期选择器。我想显示to 日期取决于from 日期。 To 日期应该是从 from date 加 1 的未来日期。FromTo 日期不相同。 To 日期总是从from date 的第二天开始。

例子:

If I select `from` 07/18/2018 `to` date do not like from 07/18/2018.

所以我想在起始日期之后显示。

If I select `from` 07/18/2018 `to` date will start like from 07/19/2018.

如果你看到我的 JSFiddle 你可以理解:http://jsfiddle.net/FdfPY/771/

JavaScript:

  var disabledDates = []
  $(".from_date").datepicker({
  minDate: 'D',
  dateFormat: "dd/mm/yy",
  defaultDate: "+1w",
  numberOfMonths: 1,
        beforeShowDay: function(d) { 
        if (d.getDate() == 2 || d.getDate() == 16) {
          return [true, "" ];
        } else {
           return [false, "" ];
        }
     },
  onClose: function(selectedDate) {
  disabledDates=[selectedDate];
    $(".to_date").datepicker("option", "minDate", selectedDate); 
  }
  });

  $(".to_date").datepicker({
  minDate: 0,
  dateFormat: "dd/mm/yy",
  defaultDate: "+1w",
  numberOfMonths: 1,
        beforeShowDay: function(d) {  

        if (d.getDate() == 2 || d.getDate() == 16) {
          return [true, "" ];
        } else {
           return [false, "" ];
        }
     } 
    });

HTML:

<div id="nested-fields row">
  <div class="span2">
    <div class="control-group">
      <label>From</label>
      <div class="controls">
        <input type="text" class="from_date" />
      </div>
    </div>
  </div>
  <div class="span2">
    <div class="control-group">
      <label>To</label>
      <div class="controls">
        <input type="text" class="to_date" />
      </div>
    </div>
  </div>
  <div style="clear:left"></div>
</div>

【问题讨论】:

  • 给定的代码有什么问题?您尝试过什么来克服缺失的东西?
  • 到日期应该是“从日期”的第二天开始
  • 示例开始日期和结束日期不应该是相同的日期..我已经完成的最大值,但我希望“结束”日期应该从“开始日期”的第二天开始
  • 听起来像是一个设计问题。如果用户选择的起始日期晚于截止日期,您可能会显示验证错误。一旦选择了开始日期,您可以阻止用户选择等于或早于开始日期的日期。有很多方法可以做到这一点,完全取决于您的用户。
  • 请参阅 jsfiddle。在我的日历中,我只显示所有年份的 2 和 16 个日期。我想显示未来的日期只取决于从日期。 jsfiddle.net/FdfPY/770

标签: javascript jquery datepicker jquery-ui-datepicker


【解决方案1】:

试试下面的代码

var disabledDates = []
$(".from_date").datepicker({
      minDate: 'D',
      dateFormat: "dd/mm/yy",
      defaultDate: "+1w",
      numberOfMonths: 1,
      onClose: function(selectedDate) {
      disabledDates=[selectedDate];
        $(".to_date").datepicker("option", "minDate", selectedDate); 
      }
    });

 $(".to_date").datepicker({
      minDate: 0,
      dateFormat: "dd/mm/yy",
      defaultDate: "+1w",
      numberOfMonths: 1,
       beforeShowDay: function(date){
        var string = jQuery.datepicker.formatDate('dd/mm/yy', date);
        return [ disabledDates.indexOf(string) == -1 ]
    }

    });

【讨论】:

  • 这是我的情况..我每个月都启用了 2 天和 16 天。 jsfiddle.net/FdfPY/563
  • 这是我的情况..我只想显示所有月份的第 2 天和第 16 天
  • @AppleOrange 如果您有其他限制,edit 您的问题包括这些。
  • 不工作..请参阅 jsfiddle。在我的日历中,我只显示所有年份的 2 和 16 个日期。我想显示未来的日期只取决于从日期。 jsfiddle.net/FdfPY/770
猜你喜欢
  • 2018-12-25
  • 1970-01-01
  • 2015-08-11
  • 2019-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-26
  • 2023-03-24
相关资源
最近更新 更多