У меня проблема со сравнением дат. Я вытаскиваю одну дату из базы данных через API. Эти даты хранятся в массиве, потому что один столбец содержит несколько дат, и мне нужно их перебирать, чтобы найти следующую предстоящую дату. Даты в формате: «дд/мм/гггг»Моя переменная не заполняется, остается пустой
$rawDate = $e->calendarsummary;
$filter = preg_replace("/[a-z]/","", $rawDate);
$createArray = explode(',', $filter);
$dates = array_filter(array_map('trim', $createArray));
foreach($dates as $d)
{
$dateTime = DateTime::createFromFormat('dmy', $d);
if($dateTime >= $now)
{
$finalDate = $dateTime;
$total = $finalDate->format('l j/m/y');
break;
}
}
Если я помещаю var_export в $ DATETIME после $dateTime = DateTime::createFromFormat('dmy', $d);
она возвращает «ложь». Поэтому я предполагаю, что $ dateTime пуст, хотя мои массивы $ date заполнены правильно.
var_export от $ даты возвращения:
массив (0 => '15/06/13' , 1 => '16/06/13')
и А var export of $ теперь возвращает дату: '16/06/13 '
Так что я немного застрял, почему моя переменная $ DateTime остается пустой?
EDIT: Очевидно, что возврат «false» означает, что это ошибка, поэтому что-то пошло не так, когда форматирование моих дат из массива?