При использовании встроенных функциональных возможностей PHP вы должны убедиться, что используете допустимый формат datetime . В противном случае strtotime()
вернется false
и DateTime()
выдаст исключение.
Для работы с нестандартными форматами datetime вы можете использовать DateTime::createFromFormat()
для синтаксического анализа даты и времени string и вернуть объект DateTime()
, из которого вы можете получить отметку времени Unix , преобразовать дату в другой формат или использовать ее для сравнения к другим DateTime
объектам.
// Date separated by dots
$date01 = \DateTime::createFromFormat('Y.m.d', '2017.04.18');
// Date with no separator
$date02 = \DateTime::createFromFormat('Ymd', '20170418');
// Get Unix timestamp
$timestamp = $date01->getTimestamp();
// Get MySQL format (ISO-8601)
$mysqlDate = $date02->format('Y-m-d');
Итак, для вашей проблемы вы сделали бы следующее:
$expires = \DateTime::createFromFormat('m/y', $card_history->expire);
$today = new \DateTime();
if($expires < $today){$expired = 'expired';}
См. также:
Возвращает имя таблицы с именем «Foo»:
show tables like '%Foo%';