Как уже отмечали другие, даты сортируются должным образом.Вы можете сделать что-то вроде:
foreach ($dates as $i => $date)
{
$dates[$i]['ts'] = strtotime($date['date']);
$dates[$i]['date'] = date('Y-m-d H:i:s', $dates[$i]['ts']);
}
usort($dates, function($a, $b) { return $a['ts'] - $b['ts']; });
Здесь я создаю свойство ts
для каждой даты, поэтому strtotime()
не нужно вызывать дважды для сравнения сортировки.Во-вторых, я меняю дату, чтобы быть в местном часовом поясе.Вы можете настроить форматную строку по своему усмотрению.
В качестве альтернативы, вы можете просто unset()
date
компонент массива и вызывать date()
непосредственно для компонента ts
, когда вы хотите напечатать,