如何比较JavaScript中的2个变量以查看日期是否相同?

时间:2011-04-06 17:09:53

标签: javascript

我有2个变量。如何比较JavaScript中的2个变量以查看日期是否相同?我不想随着时间推移这两个日期。我只想将它们转换为yyyy / dd / mm格式。

var DateReported = "20/04/2011";
var StartDate = "16/04/2011";

如果StartDate<我必须做点什么DateReported和其他东西,如果StartDate> DateReported

由于

4 个答案:

答案 0 :(得分:0)

如果您将日期存储为相同日期格式的字符串,则没有理由不进行字符串比较以检查它们是否相等:

var DateReported = "20/04/2011";
var StartDate = "16/04/2011";

return DateReported == StartDate;  // returns false;

更新:如果您确实需要比较日期以确定哪个是最新的,我建议您使用库 - 例如jQuery UI module包含日期处理代码,因此您可以轻松地解析日期字符串:

var dReported = $.datepicker.formatDate('d/mm/yy', DateReported);
var dStarted = $.datepicker.formatDate('d/mm/yy', StartDate);

if (dReported > dStarted) { ... }

答案 1 :(得分:0)

by == operator

if(DateReported == StartDate)
return true;

否则创建日期对象并将其转换为毫秒,然后比较> /<

DateReported = new Date(2011,4,20);
StartDate= new Date(2011,4,16);

if (DateReported .getTime()<StartDate.getTime()) {
  alert('DateReported is less than StartDate');
}

答案 2 :(得分:0)

如果您不想使用转换为日期,请尝试此操作(我假设月份和日期始终为0填充):

var DateReported = "20/04/2011"; 
var StartDate = "16/04/2011";
var regExp = /(\d{2})\/(\d{2})\/(\d{4})/;
if
(
    StartDate.replace(regExp, "$3$2$1") < DateReported.replace(regExp, "$3$2$1")
)
{
    alert("Lesser");
}
else
{
    alert("Greater");
}

工作示例:http://jsfiddle.net/GE83j/

答案 3 :(得分:0)

试试这个:

var DateReported = "20/04/2011";
var StartDate = "16/04/2011";
DateReported = new Date(DateReported).format("yyyy/dd/MM");
StartDate = new Date(StartDate).format("yyyy/dd/MM");
if (DateReported > StartDate) {
     alert("Date Reported Greater");
}
else {
     alert("Start Date Greater");
}
相关问题