在jQuery中设置将来的日期

时间:2018-12-18 14:42:08

标签: javascript jquery

Onclick事件无法捕获将来的日期。我一直收到自定义错误消息,指出“待定日期已经过去。”

此功能过去曾起作用,我可以宣誓于2018年底开始起作用。不知道为什么现在失败了。

按钮点击事件:

$('#markPendingSubmit').on('click', function(){
  var pendingDate = $('#reservationtime').val();
  var today = new Date();
  var dd = today.getDate();
  var mm = today.getMonth()+1;
  var yyyy = today.getFullYear();   
  if(dd<10) {
    dd='0'+dd
  }

  console.log(pendingDate); // <-- correct prints user selected date (which is 01/09/2019)

  if(mm<10) {
   mm='0'+mm
  }
  today = mm+'/'+dd+'/'+yyyy;

  if(pendingDate <= today)
  {
    $('#errorModal').modal('show');
    $('.message').text('The pending date you selected has already passed. Please select a future pending date.');
    return false;
  }
  else
  {
    // complete process
  }   
});

用户正在尝试将“ pendingDate”设置为1/09/2019,然后将其与变量“ today”进行比较,但由于它读取1/09/2019作为已过的日期而失败,即使今天是12/18/2018。

为什么会这样,我该如何解决?

1 个答案:

答案 0 :(得分:0)

这是我解决问题的方式:

if(new Date(pendingDate) <= new Date(today))
{
  $('#errorModal').modal('show');
  $('.message').text('The pending date you selected has already passed. Please select a future pending date.');
  return false;
}

因此,确保'pendingDate'和'today'均为Date对象,因此可以在if / else语句中进行比较。

这种简单的解决方法。