2013-06-04 39 views
1

我想比較兩個日期。我用這個代碼如何在JavaScript中比較日期?

function addRow(dateval,bidchekval) {      
    var val1 = document.getElementById(dateval);    

    var valcheck=document.getElementById(bidchekval).value; 
    var val123=document.getElementById(dateval).value; 

    if(val123 > valcheck){ 
     alert("success"); 
    } 
} 

這是我使用的代碼,但當改變月份然後它會break.those兩個日期得到使用日期選擇器。 日期格式例如:2013年6月12日15時12分15秒

+0

你只是比較兩個字符串。沒有足夠的信息,這些日期的格式是? –

+0

你的日期格式是什麼? – Mifeet

+0

日期格式示例:06-12-2013 15:12:15 – binil

回答

2

你不能比較字符串,但你可以比較Date對象。

var valcheck=document.getElementById(bidchekval).value; 
var val123=document.getElementById(dateval).value; 

var check = new Date(valcheck) ; 
var check123 = new Date(val123) ; 

if (check > check123){ 
    alwer("Success") ; 
} 
4
if((new Date(val123).getTime()) > (new Date(valcheck).getTime())){ 
     alert("success"); 
    } 
+1

'.getTime()'在技術上比'>'<<'比較運算符,它們在Date對象上調用'ToPrimitive'算法。使用'.getTime()','=='/'==='比較也可以,比較2個Date對象時不起作用。 –

+0

感謝您的信息,Fabricio!我這樣做是因爲我在處理日期/時間時總是以毫秒爲單位工作。 –

+0

雖然在這種情況下有點兒,但我相信'.getTime()'更清晰,因爲它顯示了實際發生的情況 - 比較發生在來自這些Date對象的2個時間戳之間。 (否則這種轉換是隱含的) –