Вход

Просмотр полной версии : DataTables - некорректная сортировка даты формата dd-mm-yyyy и кириллицы


alex-romanov
15.02.2019, 10:03
'DD-MM-YYYY' (10-02-2019)

<script type="text/javascript" src="/resources/js/jquery/datatables.min.js"></script>
<script type="text/javascript" src="/resources/js/jquery/moment.min.js"></script>
<script type="text/javascript" src="/resources/js/jquery/datetime-moment.js"></script>

затем перед вызовом плагина указал настройку

$.fn.dataTable.moment( 'DD-MM-YYYY');

$(selectorTable).DataTable({
paging: true,

});

не сортируется и не ищет дату.

Также не работает сортировка слов из кириллицы или поиск.

Как можно это настроить ?

alex-romanov
15.02.2019, 17:48
сортировка работает и для кириллицы, а также даты сортируются, только для тех данных, которые были получены при загрузке страницы.
Если данные были отредактированы на странице, но не отправлялись на сервер для обновления и затем не обновлялись на странице клиента, тогда сортировка для них не будет работать.

решено

laimas
15.02.2019, 17:50
Даты в формате DD-MM-YYYY нельзя сортировать так как результат будет все равно не верным, только в европейском формате YYYY-MM-DD, если сравнивать строковые значения, а лучше сравнивать метки времени.

alex-romanov
15.02.2019, 18:10
Даты в формате DD-MM-YYYY нельзя сортировать так

я проверил даже даты с високосными годами, ошибок не нашел, сортируется по порядку

когда данные отправляются в mysql , они приводятся к формату YYYY-MM-DD.

Сортировка идет на клиентской части, ошибок не нашел.

Может на тысячах записей и появляются такие ошибки, но у меня такой базы нет, проверить не могу

laimas
15.02.2019, 18:53
я проверил даже даты с високосными годами, ошибок не нашел, сортируется по порядку

Не городите ерунды:

alert('12-03-2018' > '05-10-2018')

Это строки, и сравниваться они будут не правильно, и если для сортировки не применяется натуральная сортировка, то результат будет неверным.

А так верно:

alert('2018-03-12' > '2018-10-05')