如何使用jQuery比较两个日期选择器日期

dm7nw8vv  于 2023-08-04  发布在  jQuery
关注(0)|答案(5)|浏览(133)

下面是我的代码:

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),当您检查条件时,它不起作用。它会抛出一个警报,这是给定的。

jdgnovmf

jdgnovmf1#

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

$(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

icomxhvb

icomxhvb2#

你需要使用这个来获取日/月/年:

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

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

piok6c0g

piok6c0g3#

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)) {...

1l5u6lss

1l5u6lss4#

$(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,
    })
});

字符串

ohfgkhjo

ohfgkhjo5#

即使这个人的问题已经解决了,我仍然想回答标题中的问题,“如何使用jQuery比较两个日期选择器日期”
我更喜欢获取日期的时间戳,然后比较它们,因为它们是数字,这样我就不必在比较月,年,闰年等方面搞砸了。我只想看看哪个日期是按时间顺序排在第一位。
要做到这一点,你可以在datepicker对象上使用getTime()函数,如下所示:第一个月
此函数返回自1970年1月1日00:00:00.000 GMT以来的毫秒数。如果这个数字更小,那意味着它更接近过去的那个日期。如果它更大,那么它(在未来)就更远。
请参见下面的工作片段。

// Init datepickers
$('.datepicker').datepicker();
$('button').on('click', compareDates);

function compareDates() {
  var $from = $("#fromDate"),
    $to = $("#toDate");
  if ($from.val() && $to.val()) {
    var from = $from.datepicker('getDate').getTime(),
      to = $to.datepicker('getDate').getTime(),
      response = 'These dates are the same, <strong><em>invalid!</em><strong>';
    if (from > to) {
      response = 'To happens first, <strong><em>invalid!</em><strong>';
    } else if (from < to) {
      response = 'From happens first, valid!';
    }
    $('#output').html(response);
  }
}

个字符

相关问题