【问题标题】:Comparing Datepicker Dates Javascript比较 Datepicker 日期 Javascript
【发布时间】:2012-10-10 13:53:48
【问题描述】:

我正在尝试比较两个 datepicker 日期,看看它们是否相隔 7 天以上。

我该怎么做?

我通常只会查看它们的差异是否大于 7,但这不会考虑几个月等。

这是我的代码:

var datepickerBegin = $("#datepicker_start").val();
var datepickerEnd = $("#datepicker_to").val();

if (datepickerBegin - datepickerEnd > 7) { 
    alert('more than a week apart!') 
}

有什么建议吗??

【问题讨论】:

  • 这似乎或多或少是同一个问题 - stackoverflow.com/questions/73971/…
  • 当我尝试使用他的解决方案时,“差异”变量是 NaN。我迷路了吗?我就是想看看是不是真的相隔7天

标签: javascript jquery datepicker


【解决方案1】:

使用$("#datepicker_xxx").datepicker("getDate") 将选择日期作为Date 获取。那么这只是一个问题

end - begin > 7 * 86400 * 1000

【讨论】:

  • 这太棒了!非常感谢!
【解决方案2】:

试试这个,DatePicker 有一个方便的 formatDate 函数,我用它来比较 mm/dd/yy 日期:

$.datepicker.formatDate("dd/mm/yy",new Date("09/01/2014")) < $.datepicker.formatDate("dd/mm/yy", new Date("10/01/2014")); // Returns true
$.datepicker.formatDate("dd/mm/yy",new Date("10/01/2014")) < $.datepicker.formatDate("dd/mm/yy", new Date("10/01/2014")); // Returns false
$.datepicker.formatDate("dd/mm/yy",new Date("11/01/2014")) < $.datepicker.formatDate("dd/mm/yy", new Date("10/01/2014")); // Returns false

【讨论】:

    【解决方案3】:

    //查看日期范围,86400000是一天的毫秒数

    var difference = (datepickerEnd- datepickerBegin ) / (86400000 * 7);
    if (difference < 0) {
      alert("The start date must come before the end date.");
      return false;
    }
    
    if (difference <= 1) {
      alert("The range must be at least seven days apart.");
      return false;
    }
    
    return true;
    

    【讨论】:

      【解决方案4】:

      试试这个:

      var datepickerBegin = $("#datepicker_start").val(); // lets, returning in mm/dd/yy format
      var datepickerEnd = $("#datepicker_to").val(); // lets, returning in mm/dd/yy format
      
      if ( ($.datepicker.parseDate('mm/dd/yy', datepickerBegin) -  $.datepicker.parseDate('mm/dd/yy', datepickerEnd)) > 7) {
      alert('more than a week apart!') ;
      }
      

      希望它应该工作。谢谢。欲了解更多check it out.

      【讨论】:

        【解决方案5】:
        $(document).ready(function(){
            $("#txtFromDate").datepicker({
                minDate: 0,
                maxDate: "+60D",
                numberOfMonths: 2,
                onSelect: function(selected) {
                  $("#txtToDate").datepicker("option","minDate", selected)
                }
            });
            $("#txtToDate").datepicker({ 
                minDate: 0,
                maxDate:"+60D",
                numberOfMonths: 2,
                onSelect: function(selected) {
                   $("#txtFromDate").datepicker("option","maxDate", selected)
                }
            });  
        });
        

        发件人:&lt;input type="text" id="txtFromDate" /&gt;

        收件人:&lt;input type="text" id="txtToDate" /&gt;

        【讨论】:

        • 尝试通过缩进至少 4 个空格来将您的答案作为代码发布。那样会更好读。
        【解决方案6】:

        这是完美的工作

        function checkDateDifference(startDate, endDate) {
            startDate = $.datepicker.parseDate('mm/dd/yy', startDate);
            endDate = $.datepicker.parseDate('mm/dd/yy', endDate);
        
            var difference = (endDate - startDate) / (86400000);
            alert(difference)
            if (difference < 0) {
                showError("The start date must come before the end date.");
                return false;
            }
            return true;
        
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-07-11
          • 2012-09-26
          • 2012-01-04
          • 2011-02-14
          • 2011-11-28
          • 1970-01-01
          相关资源
          最近更新 更多