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

Javascript 将变量日期与if/else语句中的日期(日期字符串)进行比较,javascript,jquery,datepicker,Javascript,Jquery,Datepicker,很抱歉问n00b问题,但是我的js/jq很糟糕。我花了一下午的大部分时间在这上面,但我还是想不出最后一点 我需要输入一个日期,计算从输入日期起180天的日期,并将其与日期字符串(在下面的代码中标记为“截止日期”)进行比较。除了最后的if/else语句之外,一切正常。我觉得这是一个简单的解决办法,但我就是看不到。目前,它只输出else语句的结果 HTML 点击Go!要添加180天: 将180添加到: 结果日期: JS/JQ $(文档).ready(函数(){ $(“#indexDate”).d

很抱歉问n00b问题,但是我的js/jq很糟糕。我花了一下午的大部分时间在这上面,但我还是想不出最后一点

我需要输入一个日期,计算从输入日期起180天的日期,并将其与日期字符串(在下面的代码中标记为“截止日期”)进行比较。除了最后的if/else语句之外,一切正常。我觉得这是一个简单的解决办法,但我就是看不到。目前,它只输出else语句的结果

HTML

点击Go!要添加180天:
将180添加到:
结果日期:

JS/JQ

$(文档).ready(函数(){
$(“#indexDate”).datepicker({changeYear:true}).datepicker('setDate','01/01/2004');
});
函数getdate(){
var tt=document.getElementById('indexDate').value;
var日期=新日期(tt);
var newdate=新日期(日期);
var截止日期=新日期(2014年3月11日);
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在您的if条件下尝试此方法

 if(new Date(formattedDate) < deadline){
     document.getElementById("answer").innerHTML = "Yay!";
  } else {
    document.getElementById("answer").innerHTML = "Boo!";
  }    
if(新日期(格式化日期)<截止日期){
document.getElementById(“答案”).innerHTML=“耶!”;
}否则{
document.getElementById(“答案”).innerHTML=“Boo!”;
}    
如果不工作,尝试格式化日期


var formattedDate=新日期(年、月、日);//日期对象

我认为日期的格式有问题


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

你是对的。问题在于日期的格式。我将“截止日期”固定为符合javascript日期对象格式的年、月、日。谢谢你的帮助!我真的很感激!使用你的两个建议可以让事情顺利进行!我确实做到了日期对象的格式错误,我认为这是造成问题的主要原因,因为正在比较的两个变量的格式不同。非常感谢您的帮助!我非常感谢。
$(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("answer").innerHTML = "Yay!";
  } else {
    document.getElementById("answer").innerHTML = "Boo!";
  }       
}    
 if(new Date(formattedDate) < deadline){
     document.getElementById("answer").innerHTML = "Yay!";
  } else {
    document.getElementById("answer").innerHTML = "Boo!";
  }    
console.log(deadline);
console.log(formattedDate);