Cela semble être quelque chose qui devrait être assez simple, mais j'ai été coincé page défaillant ce problème pour un certain temps maintenant, donc voilà.
Avoir un coup d'oeil sur la documentation de PHP , l'une des deux méthodes suivantes de l'objet DateTime permettrait à la fois de résoudre mon problème:
- DateTime::diff : Obtenir la différence et l'utiliser pour déterminer ce qui est le plus ancien.
- DateTime::méthode gettimestamp : Obtenir le UNIX timestampt et de comparer ceux-ci.
Ces deux méthodes sont marqués dans le doco comme étant disponible en version >= 5.3 (et, il n'est pas surprenant, si j'essaie de les appeler, je trouve qu'ils n'existent pas). Je ne trouve pas de documentation spécifique pour 5.2.8 donc je ne sais pas si il y a des méthodes équivalentes dans ma version. J'ai Googlé le problème et trouvé une gamme éclectique de solutions, mais aucune de répondre à mes exigences simples:
- Comment comparer deux objets DateTime?
- Où puis-je trouver les doco pour les précédentes versions de PHP? Plus précisément version 5.2.8?
Pour le contexte, j'ai le code suivant:
$st_dt = new DateTime(verifyParam ('start_date'));
$end_dt = new DateTime(verifyParam ('end_date'));
// is the end date more ancient than the start date?
if ($end_dt < $start_dt)
Apparemment, il n'y a pas d'opérateur de comparaison sur ce gars.
EDIT: Apparemment mes hypothèses étaient complètement faux (merci Milen pour illustrer ce de manière efficace). Il est un opérateur de comparaison et il fonctionne très bien, merci. Parfois, je manque vraiment d'un compilateur. Le bug est dans le code ci-dessus, je suis sûr que vous trouverez qu'il est beaucoup plus rapide que j'ai fait :).
J'ai hâte à mon embarras à la simplicité de votre solution.
EDIT: Et bien sûr, de la gêne qui s'ensuit ...