Сравнение дат в объектно-ориентированном стиле Php - PullRequest
0 голосов
/ 01 сентября 2011

Как вы предпочитаете сравнивать даты, когда дело доходит до ООП? О чем вы думаете:

$date1 = new Date();
...
$date2 = new Date();

if ($date1 > $date2) {
    ...
}

Пожалуйста, не помещайте в пример ничего подобного strtotime и т. Д., Только ООП.

Ответы [ 2 ]

3 голосов
/ 01 сентября 2011

Если вы используете объекты PHP DateTime, вы можете сравнивать даты, используя стандартные операторы сравнения. Для получения дополнительной информации и примеров см. Справочную страницу DateTime :: diff .

Вот пример № 2 из руководства:

$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");

var_dump($date1 == $date2);
var_dump($date1 < $date2);
var_dump($date1 > $date2);
0 голосов
/ 01 сентября 2011

Если Date должен был быть внутренний класс DateTime, ваш код абсолютно в порядке.Но если Date является пользовательским классом, код не будет работать должным образом.В отличие от других языков программирования PHP не допускает перегрузку операторов, которая необходима для работы вашего кода.Вам нужно что-то, что скажет PHP, как это должно работать с операторами сравнения в экземплярах вашего класса, потому что PHP не может знать, как сравнивать $date1 и $date2 и определять, какой из них больше.

Выоднако может определить некоторые методы сравнения в вашем классе ...

$date1->isLargerThan($date2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...