О web-разработке
и даже немного больше...

Как сделать сортировку по дате в DataTables?

Ранее на моём сайте уже публиковались посты про возможности использования сортируемых таблиц DataTables. Данный инструмент продолжает быть весьма удобным и по сей день в виду актуальности использования табличных данных, а также возможности их сортировки. Ранее не приходилось замечать, но недавно обратил на одну особенность внимание – это сортировка полей с датами.
Дело в том, что DataTables сортирует поля таблицы как строки по умолчанию. Таким образом, если мы используем форматированное представление даты – сортировка становится некорректной.
Проблема, к счастью, решается довольно просто, для корректной сортировки необходимо сообщить js скрипту временную метку timestamp для нужной колонки.

Давайте представим, что у нас есть дата в некотором формате, которая представлена в строковом виде. Получить временную метку из строки с датой в PHP можно таким образом:

$dateStr = '24.09.2025';
$timeStamp = strtotime($dateStr);

Функция strtotime() получает в качестве параметра текстовое представление даты, преобразуя во временную метку в формате Unix. Важно учитывать момент что распознаёт функция текстовые представления названия месяцев только на английском языке.

Добавляем полученное значение в атрибут таблицы data-sort.

echo '<tr>';
echo '<td data-sort="'. $timeStamp .'">'.$dateStr.'</td>';
...

На практике как правило табличные данные выводятся в цикле. По этой причине в массиве данных для таблицы можно завести отдельное поле которое будет содержать значение временной метки для каждой строки таблицы.

Опубликован: 24.09.2025 г.

См. также:

Делаем кнопки «Поделиться в соцсетях»
Стрелочные функции в JS
Мобильное меню для сайта на CSS
Опасность использования атрибута target="_blank"
Бесконечная анимация вращения на CSS
Анимация вращения при наведении курсора
Стилизация выделения номера телефона в мобильных браузерах
Эффекты кнопок для сайта

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *