2010-02-26 30 views

回答

1

在AS3最簡單的辦法,在字符串格式的日期,如果你是不是在Date對象本身就很有趣:

 var date1Str:String="10/01/2010"; 
     var date2Str:String="10-01-2010"; 
     var equal:Boolean=date2Str.split("-").join("/")==date1Str; 
     trace(equal); 

如果你有興趣到日期對象,以便在AS3:

 var date1Str:String = "10/01/2010"; 
     var date2Str:String = "10-01-2010"; 

     var date1Arr:Array = date1Str.split("/"); 
     var date2Arr:Array = date2Str.split("-"); 

     var date1:Date = new Date(date1Arr[2], date1Arr[1] - 1, date1Arr[0]); 
     var date2:Date = new Date(date2Arr[2], date2Arr[1] - 1, date2Arr[0]); 

     var equal:Boolean = date1.getTime() == date2.getTime(); 
     trace(equal); 
+0

@帕特里克:不比較日期字符串。需要比較日期對象。 – Ravikanth 2010-02-26 13:23:42

+0

@kalyaniRavi,還可以添加日期對象;) – Patrick 2010-02-26 13:27:02

4

在Javascript中:

X =新的日期( 「1999年12月12日」)

太陽1999年12月12日00:00:00 GMT-0500 (東部標準時間)

Y =新的日期( 「1999年12月13日」)

星期一1999年12月13日00:00:00 GMT-0500(美國東部標準時間)

X ==Ÿ

X <Ÿ

true

希望這會有所幫助!

+0

@Pete:謝謝你的生存。 這兩種日期格式是不同的。我可以使用'=='運算符來比較它,以比較不同的日期。 – Ravikanth 2010-02-26 13:14:05

+0

當然,當您在上面創建Date對象時,JavaScript會將日期標準化爲它自己的內部格式。然後比較日期對象,而不是字符串。 – Pete 2010-02-26 13:16:27

0

我猜可以將日期字符串轉換爲日期實例並進行比較。

function parseDate(ds) { 
    var rv = null; 
    ds.replace(/(\d\d?)[-/](\d\d?)[-/](\d\d\d\d)/, function(_, dd, mm, yyyy) { 
    rv = new Date(parseInt(yyyy, 10), parseInt(mm, 10) - 1, parseInt(dd, 10)); 
    }); 
    return rv; 
} 

// ... 

if (parseDate(d1).getTime() === parseDate(d2).getTime()) { 
    // ... 
} 

如果你想變得很花哨,你可以添加代碼來處理兩位數的年份。

[編輯]哇@Pete在這裏我一個成年男子,不知何故,我設法avoidletting本地Date對象解析日期字符串對我來說這一切的時候:-)

相關問題