你如何比較OOP的日期?你怎麼看:Php面向對象風格的日期比較
$date1 = new Date();
...
$date2 = new Date();
if ($date1 > $date2) {
...
}
請不要在類似strtotime等例子,只有面向對象。
你如何比較OOP的日期?你怎麼看:Php面向對象風格的日期比較
$date1 = new Date();
...
$date2 = new Date();
if ($date1 > $date2) {
...
}
請不要在類似strtotime等例子,只有面向對象。
如果您使用PHP DateTime對象,則可以使用標準比較運算符比較日期。欲瞭解更多信息和示例,請參閱DateTime::diff manual page。
這裏是例子#2從手動:
$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");
var_dump($date1 == $date2);
var_dump($date1 < $date2);
var_dump($date1 > $date2);
如果Date
應該是內部DateTime
類,你的代碼是絕對的罰款。但是,如果Date
是自定義類,則代碼將無法按預期工作。與其他編程語言不同,PHP不允許您的代碼運行所需的運算符重載。您需要一些信息告訴PHP它應該如何與您的類的實例上的比較運算符一起工作,因爲PHP無法知道如何比較$date1
和$date2
並確定哪一個更大。
然而,你可以定義你的類的一些比較方法......
$date1->isLargerThan($date2);
嗯,這取決於你要比較的,不是嗎? – alexn
是在DateTime對象上定義的嗎?我懷疑它不是,這確實會有一些非常奇怪的行爲。 – Gian
@alexn是的。我想比較日期。 – zapadlo