У меня есть базовое приложение Spring Boot., Встроенный Tomcat, движок шаблонов Thymeleaf. Я хочу заказать 1 столбец даты в datatable.

В моем POJO:

public String getTimeFormatted() {
DateTimeFormatter formatter = 
            DateTimeFormatter.ofPattern("EEEE, MMMM d,yyyy h:mm,a", Locale.ENGLISH);
        LocalDateTime dateTime = LocalDateTime.ofEpochSecond(time, 0, ZoneOffset.UTC);      
        return dateTime.format(formatter);
    }

В шаблоне:

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>
<script src="https://cdn.datatables.net/plug-ins/1.10.15/sorting/datetime-moment.js"></script>

<script th:inline="javascript">
$(document).ready(function() {

    $.fn.dataTable.moment( 'EEEE, MMMM d,yyyy h:mm,a' );

    $('#table').dataTable( {  
        "bLengthChange": false,
        "pageLength": 25,
    }); 
} );
</script>

Но это не заказывает должным образом введите описание изображения здесь

8
Nunyet de Can Calçada 28 Май 2017 в 13:39

2 ответа

Лучший ответ

Это довольно легко отладить.

Я даже сделал простой пример.

Вы используете формат EEEE, MMMM d,yyyy h:mm,a в своем коде (я полагаю, весной), но вы забыли перевести его в формат moment ... и из документов, который должен быть: dddd, MMMM D,YYYY h:mm,a

Поэтому код на самом деле должен быть:

$.fn.dataTable.moment("dddd, MMMM D,YYYY h:mm,a");
5
balexandre 1 Июн 2017 в 15:14

Лично я предпочитаю использовать data-order атрибут. Затем я просто передаю ему метку времени в epoch или YYYYmmddHHiiss.

Вы можете увидеть пример здесь: https://datatables.net/examples/advanced_init /html5-data-attributes.html

0
Bing 6 Июн 2017 в 18:59