2011-04-06 109 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"); 
}