2011-04-06 36 views
0

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

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

我要做的东西,如果起始日期< DateReported和别的东西,如果起始日期> DateReported

感谢

+0

为什么你需要将它们转换为检查平等? – 2011-04-06 17:10:47

回答

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/

+0

这工作。谢谢。 – 2011-04-06 19:21:24

0

如果您在日期作为字符串存储在相同的日期格式,没有理由你不能你字符串比较来检查,如果他们是平等的:

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

return DateReported == StartDate; // returns false; 

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

由==操作符

if(DateReported == StartDate) 
return true; 

其他

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

if (dReported > dStarted) { ... } 
+0

但我必须做一些事情,如果StartDate DateReported – 2011-04-06 17:12:42

+0

这实际上不是你问的东西! – Dexter 2011-04-06 17:13:51

+0

@Asif那么你应该澄清你的问题,因为它会问如何找到“日期是否一样?” – Davy8 2011-04-06 17:14:14

0

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

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

if (DateReported .getTime()<StartDate.getTime()) { 
    alert('DateReported is less than StartDate'); 
} 
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"); 
} 
相关问题