2010-02-26 6 views

Répondre

1

La façon facile AS3 avec votre date au format chaîne et si vous n'êtes pas intéressant dans l'objet Date se:

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

Si vous êtes intéressant dans l'objet de la date ainsi dans 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

@Patrick: ne pas comparer les chaînes de date. Besoin de comparer les objets Date. – Ravikanth

+0

@kalyaniRavi, Ok ajouter objet date aussi;) – Patrick

4

en Javascript:

x = new Date ("12/12/1999")

Sun 12 décembre 1999 00:00:00 GMT-0500 (heure normale de l'Est)

y = new date ("13/12/1999")

Lun 13 décembre 1999 00:00:00 GMT-0500 (heure normale de l'Est)

x == y

faux

x < y

true

Espérons que cela aide!

+0

@Pete: Merci pour votre respose. Ces 2 formats de date sont différents. Puis-je le comparer en utilisant l'opérateur '==' pour comparer les différentes dates. – Ravikanth

+0

Bien sûr, lorsque vous créez les objets Date ci-dessus, javascript normalise les dates dans ses propres formats internes. Vous comparez ensuite les objets de date, au lieu des chaînes. – Pete

0

Vous pouvez convertir les chaînes de date en instances Date et les comparer, je suppose.

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()) { 
    // ... 
} 

Si vous voulez vous faire plaisir, vous pouvez ajouter du code pour faire face à des années à 2 chiffres.

[modifier] wow @Pete ici, je suis un homme cultivé et en quelque sorte j'ai réussi à avoidletting les chaînes de date d'analyse syntaxique natif objet Date pour moi tout ce temps :-)

Questions connexes