Bu ileriye oldukça düz olması gereken bir şey gibi görünüyor, ama ben buraya, şimdi bir süre için page faulting Bu sorunu sıkışmış edilmiştir.
PHP belgelerine bir göz olması, DateTime nesne iki yöntem izleyen hem benim sorunu çözmek gibi görünüyor:
- DateTime::diff: farkını alın ve daha eski olduğunu belirlemek için kullanabilirsiniz.
- DateTime::getTimestamp: UNIX zaman etiketi alın ve bu karşılaştırın.
Bu yöntemlerin her ikisi (ben onları aramak için çalışırsanız ben onlar yok bulmak değil, şaşırtıcı, ve) sürüm> = 5.3 mevcut olarak doco işaretlenir. Ben 5.2.8 için herhangi bir özel belgelerine bulamıyorum bu yüzden benim sürümünde eşdeğer yöntemler varsa emin değilim. I Googled sorun var ve çok basit benim ihtiyaçlarına cevap bunların hiçbiri çözüm eklektik bir dizi bulundu:
- Nasıl iki DateTime nesne karşılaştırılır?
- Nerede önceki PHP sürümleri için doco bulabilirim? Özellikle sürüm 5.2.8?
Bazı bağlam için, ben aşağıdaki kodu var:
$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)
Görünüşe göre bu adam hakkında hiçbir karşılaştırma operatörü var.
EDIT: Apparently Benim varsayımlar (yani bu etkili gösteren için teşekkürler Milen) tamamen yanlış idi. Orada bir karşılaştırma operatörü ve sadece para cezası sayesinde çalışıyor. Bazen gerçekten bir derleyici özledim. Bug Yukarıdaki kodda, ben sana :) yaptım daha çok daha hızlı bulacaksınız eminim.
Ben senin çözümün basitliği benim utanç için sabırsızlanıyoruz.
EDIT: Ve emin yeterli, utanç gelişir ...