【问题标题】:How to compare two datepicker dates using jQuery如何使用 jQuery 比较两个 datepicker 日期
【发布时间】:2013-06-18 13:11:04
【问题描述】:

这是我的代码:

var $from = $("#fromDate").datepicker('getDate');
var $to = $("#toDate").datepicker('getDate');
if($from > $to)
   alert("from date shouldn't greater than To date");

如果它是同一年的两个日期,则它正在工作。否则,例如 fromDate='1/12/2012'(dd/mm/yyyy) toDate='18/6/2013'(dd/mm/yyyy),当您检查条件时,它不起作用。它会抛出一个警报,并给出。

【问题讨论】:

标签: javascript jquery


【解决方案1】:

改为自动限制您的日期。在此示例中,第二个组合框不允许您选择比您在第一个组合框中选择的日期更低的日期。

$(document).ready(function() {

  $("#txtFromDate").datepicker({

    numberOfMonths: 2,

    onSelect: function(selected) {
      $("#txtToDate").datepicker("option", "minDate", selected)
    }
  });

  $("#txtToDate").datepicker({

      numberOfMonths: 2,

      onSelect: function(selected) {
         $("#txtFromDate").datepicker("option", "maxDate", selected)

      }
  });
});

这里是a working demo

【讨论】:

  • 非常感谢!你拯救了我的一天!
  • 我知道我正在为旧帖子添加评论,但这是否能够在没有 Jquery UI 的情况下工作?现在我使用 Jquery 1.9.1 并尝试使用 datepicker 但是当我从你的 JSFiddle 中取消选中 UI 时,它停止工作。有什么想法吗?
  • 非常有用!但我想知道如何防止在txtFromDate 字段中选择同一天?谢谢!
【解决方案2】:

您需要使用它来获取日/月/年:

var day1 = $("#datepicker").datepicker('getDate').getDate();
var month1 = $("#datepicker").datepicker('getDate').getMonth() + 1;
var year1 = $("#datepicker").datepicker('getDate').getFullYear();

之后,您可以比较这些值。

【讨论】:

    【解决方案3】:
    Date.parse(fromDate) > Date.parse(toDate)
    

    例子

    var sDate = $('#EFT_FRM_DATE').val();
    var eDate = $('#EFF_TO_DATE').val();
    
    if (Date.parse(sDate) > Date.parse(eDate) || Date.parse(sDate) == Date.parse(eDate)) {
       ShowMessage(CurrencySetupExchangeIndex.EndDateGreaterStartDate, 'Error');
       //alert
       return false;
       return;
    }
    

    简化语句:

    if (Date.parse(sDate) >= Date.parse(eDate)) {...
    

    【讨论】:

      【解决方案4】:

      $(document).ready(function() {
          $("#startdate").datepicker({
                  todayBtn:  1,
                  format: "dd-mm-yyyy",
                  startDate: '1d',
                  autoclose: true,
          }).on('changeDate', function (selected) {
              var minDate = new Date(selected.date.valueOf());
              $('#enddate').datepicker('setStartDate', minDate);
              if($('#enddate').val() != "" && ($("#enddate").datepicker("getDate") == null || Date.parse($("#enddate").datepicker("getDate"))< Date.parse($("#startdate").datepicker("getDate")))) {
                  var date = new Date($("#startdate").datepicker("getDate")).toLocaleDateString();
                  date = date.split("/")
                  date = date[0] + "-" + date[1] + "-" + date[2]
                  $('#enddate').val(date)
              }
          });
      
          $("#enddate").datepicker({
              format: "dd-mm-yyyy",
              autoclose: true,
          })
      });

      【讨论】:

      • 没有解释或细节的答案通常对许多人没有用处。很高兴添加有关您如何解决此问题的详细信息
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-01
      • 2011-01-13
      • 1970-01-01
      相关资源
      最近更新 更多