将变量日期与if / else语句中的Date(dateString)进行比较

时间:2015-01-14 02:47:32

标签: javascript jquery datepicker

抱歉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="answer"></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("answer").innerHTML = "Yay!";
  } else {
    document.getElementById("answer").innerHTML = "Boo!";
  }       
}    

2 个答案:

答案 0 :(得分:0)

在if条件中尝试此操作

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

如果不能正常工作,请尝试格式化日期

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

答案 1 :(得分:0)

我认为这是日期格式的问题。

添加

console.log(deadline);
console.log(formattedDate);
在if块之前

并在控制台中查看。这是什么意思?