В данном примере не будет каких-то самописных функций или простыни из кода – сортируем массивы по дате.
Как в PHP выполнить сортировку по дате?
Если вы такой же фанат Битрикса как и я, то знайте – сортировка по дате создания, это всего-навсего сортировка по ID по убыванию :). Тут ничего мудрить не стоит.
Но если всё таки речь про массивы, то один из способов их сортировки на PHP это использование стандартной функции strtotime. Как это работает?
Разберем на таком примере. У нас есть 2 даты, выведем их результат на экран:
$myDate = '20.03.2013 14:26:35'; $myDate2 = '20.03.2013 14:36:36'; echo strtotime($myDate); echo '
'; echo strtotime($myDate2);
В результате получаем два числа:
1363775195
1363775796
Как видно из результата, мы преобразовали нашу дату в число. Что же это за число и почему функция всегда будет возвращать вам правильный результат? Есть такой стандарт: количество секунд, прошедших с 1 января 1970 года 00:00:00 UTC и именно он позволяет решить эту задачу таким вот способом.
Сортировка должна выдать правильный результат:
$arDate[0] = strtotime('20.03.2013 14:36:36'); $arDate[1] = strtotime('20.03.2013 14:26:35'); sort($arDate, SORT_NUMERIC); // SORT_NUMERIC писать необязательно
Но тут зависит от задачи – где-то нужно сохранить ключи, где-то будет многомерный массив.
ПС решить данную задачу можно несколькими способами и цель этой статьи была исключительно расширить кругозор и посмотреть на даты в PHP под другим углом 🙂