DataTables JS неправильно сортирует дату в приложении PHP - PullRequest
0 голосов
/ 27 августа 2018

Мне было поручено исправить сортировку таблиц в этом приложении PHP.В таблице используется DataTable 1.10 для автоматической генерации данных для файла php blade.php.

Данные, поступающие на страницу, используют следующий формат для «Дата публикации»:

uploaded_at: «2018-01-02 00:00:00»

page.blade.php

<table class="table tbl_issue" cellspacing="0" style="border: 1px solid #e9ecef;border-radius: 4px;">
                        <thead>
                            <tr>
                                <th>Issue Title</th>
                                <th>Publish Date</th>
                            </tr>
                        </thead>
                        <tbody>
                            @if(count($data['issues']))
                                @foreach($data['issues'] as $issue)
                                @if($issue->uploaded_at >= $data['starts_date'])
                                <tr>
                                    <td>
                                        {{$issue->name}}
                                    </td>
                                    <td>{{date('m/d/Y', strtotime($issue->uploaded_at))}}</td>
                                </tr>
                                @endif
                                @endforeach
                        </tbody>
                    </table>

$(document).ready(function(){
    $('.tbl_issue').DataTable();
});

Когда я нажимаю автоматически созданный фильтр «Дата публикации», датыне отсортированы правильно.(изображения ниже)

ASC DSC

Как видите, дата 08/18/2016 всегда находится посередине.

Как мне правильно определить даты сортировки?

1 Ответ

0 голосов
/ 27 августа 2018

Попробуйте использовать API Datatables, чтобы установить для этого столбца дату типа.

Пример:

$('#example').dataTable( {
  "columns": [
      { "type": "string" },
      { "type": "date" },
  ]
} );

См. Ссылку:

https://datatables.net/reference/option/columns.type

...