如何将“MM / DD / YYYY”日期与Javascript中的Date()函数进行比较?

时间:2012-03-08 22:51:02

标签: javascript

如何将格式为“MM / DD / YYYY”的日期输入与Javascript中的Date()函数进行比较?

例如:

if (InputDate < TodaysDate){
  alert("You entered past date")
}
else if (InputDate > TodaysDate){
  alert("You entered future date")
}
else if (InputDate = TodaysDate){
  alert("You entered present date")
}
else{
  alert("please enter a date")
}

5 个答案:

答案 0 :(得分:3)

使用new Date(dateString)将字符串转换为日期。然后使用today.setHours(0, 0, 0, 0)标准化今天的日期以省略时间信息。然后你可以比较你上面的日期:

var date = new Date(dateInput);
if (isNaN(date)) {
    alert("please enter a date");
}
else {
    var today = new Date();
    today.setHours(0, 0, 0, 0);
    date.setHours(0, 0, 0, 0);
    var dateTense = "present";
    if (date < today) {
        dateTense = "past";
    }
    else if (date > today) {
        dateTense = "future";
    }
    alert("You entered a " + dateTense + " date");
}

演示: http://jsfiddle.net/w2sJd/

答案 1 :(得分:2)

谢谢大家!没有发现任何上述工作,但最终让它工作。不得不破解一点;)

我是通过使用getMonth,getDate和getYear拆分Date并对其进行解析然后进行比较来完成的。它正如我想要的那样工作:

Date.parse(document.getElementById("DateId").value) < Date.parse(dateToday.getMonth() + "/" + dateToday.getDate() + "/" + dateToday.getYear())

答案 2 :(得分:1)

查看Date object文档。

您需要一个带有输入日期的Date对象(使用构造函数或setMonth等方法)和一个具有当前日期的对象(没有构造函数的参数)。然后,您可以使用getTime在两个对象上获取UNIX时间戳并进行比较。

答案 3 :(得分:0)

看看http://www.datejs.com/。它将帮助您进行标准日期操作

答案 4 :(得分:-3)

function compareDate(inputDateString) {
  var inputDate, now;
  inputDate = new Date(inputDateString);
  now = new Date();
  if (inputDate < now) {
    console.log("You entered past date");
  }
  else if (inputDate > now) {
    console.log("You entered future date");
  }
  else if (inputDate === now) {
    console.log("You entered present date");
  }
  else {
    console.log("please enter a date");
  }
}