将变量日期与 if/else 语句中的日期(日期字符串)进行比较

Compare variable date with Date(dateString) in if/else statement

本文关键字:日期 字符串 比较 语句 变量 if else      更新时间:2023-09-26

很抱歉n00b问题,但我的js/jq很糟糕。我花了下午的大部分时间,但我仍然无法弄清楚最后一点点。

我需要输入一个日期,

从输入的日期计算 180 天的日期,并将其与 dateString(在下面的代码中标记为"截止日期")进行比较。一切正常,除了最后的 if/else 语句。我觉得这是一个简单的修复,但我就是看不到它。目前,它只输出 else 语句的结果。

.HTML

<h2>click Go! to add 180 days:</h2>
<p>Add 180 to:
<input id="indexDate" type="text" />
<input type="button" onclick="getdate()" value="Go!" />
<p>Result Date:
<span id="date_180"></span>
<span id="answerswer"></span></p>

JS/JQ

$(document).ready(function () {
    $('#indexDate').datepicker({changeYear: true}).datepicker('setDate', '01/01/2004');
});
function getdate() {
  var tt = document.getElementById('indexDate').value;
  var date = new Date(tt);
  var newdate = new Date(date);
  var deadline = new Date(11/03/2014);
  newdate.setDate(newdate.getDate() + 180);
  var dd = newdate.getDate();
  var mm = newdate.getMonth() + 1;
  var y = newdate.getFullYear();
  var formattedDate = mm + '/' + dd + '/' + y;
  document.getElementById('date_180').innerHTML = formattedDate;
  if (formattedDate<deadline) {
    document.getElementById("answerswer").innerHTML = "Yay!";
  } else {
    document.getElementById("answerswer").innerHTML = "Boo!";
  }       
}    

在 if 条件下尝试此操作

 if(new Date(formattedDate) < deadline){
     document.getElementById("answerswer").innerHTML = "Yay!";
  } else {
    document.getElementById("answerswer").innerHTML = "Boo!";
  }    

如果不起作用,请尝试格式化日期喜欢

var formattedDate = new Date(Year,Month,Day);//Date object 参考

文献

我认为日期格式有问题。

console.log(deadline);
console.log(formattedDate);

在 if 块之前,请在控制台中查看。它说了什么?