2016-01-23 76 views
0

在我的應用程序中,我使用四種不同類型的日期格式: 1. dd/MM/yyyy2. MM/dd/yyyy。 3. dd-MM-yyyy。 4. MM-dd-yyyy。 根據選擇的格式,用戶可以從日期選擇器中檢索格式化的日期。現在我必須比較兩個日期,來自屏幕中的兩個文本框(日期選擇器)。 我曾嘗試配發,但不能得到下面的代碼此bcoz日期format.The的妥善解決是比較例如:如何在JavaScript中比較未知格式的日期?

var date1 = document.getElementById("<%=txt1date.ClientID%>"); 
var date2 = document.getElementById("<%=txt2date.ClientID%>"); 

if(date1.value > date2.value) 
{   
    //do something 
    return false; 
} 

現在我的問題是,如何讓正確的日期在var中,使該caparison可以用於任何上述格式?

+0

你可以只用一瞬間,它的偉大 – adeneo

+1

你比較DOM節點,而不是日期BTW – adeneo

+2

可能要重新考慮你的方法,而不是使用整個應用程序中四個不同的日期格式, **解決單一格式**([見這裏指南](http://stackoverflow.com/questions/178704/are-unix-timestamps-the-best-way-to-store-timestamps))。您可以解析用戶輸入的日期以適應您選擇的格式。 – Terry

回答

-2

使用MomentJS

var date1 = moment(document.getElementById("<%=txt1date.ClientID%>")); 
var date2 = moment(document.getElementById("<%=txt2date.ClientID%>")); 

if(date1 > date2) 
{   
    //do something 
    return false; 
} 
+0

這就是我一直在說的,一個應該總是添加一個完整的庫來做一些簡單的日期解析在JavaScript中 – adeneo

+0

這甚至不是接近正確。您將整個DOM節點傳遞給'moment()'函數。 – Terry

+0

即使你傳遞了值而不是元素,Moment.js也會猜測這種格式完全不可靠。 – RobG