2017-05-28 14 views
6

Tôi có một ứng dụng SpringBoot cơ bản., Nhúng Tomcat, Thymeleaf mẫu động cơ Tôi muốn đặt hàng 1 cột ngày của một dữ liệu.Có thể chỉnh sửa: ngày/giờ sắp xếp plug-in không đặt hàng

trong POJO tôi:

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); 
    } 

trong mẫu:

<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> 

nhưng nó không đặt đúng enter image description here

+0

Bí quyết làm tôi thực sự là thêm một khoảng với 'hidden' với dữ liệu thời gian unix, vì vậy DataTable có thể sắp xếp nó một cách chính xác ... – balexandre

+0

Datatables phân loại là chữ cái nếu không có chức năng sắp xếp được chỉ định. Cách sử dụng @balexandre workaround là ok, nhưng cách "đúng" là xác định hàm sắp xếp của bạn dựa trên định dạng ngày bạn đang sử dụng. https://datatables.net/plug-ins/sorting/#Custom-data-source-sorting – Dacklf

Trả lời

3

này là khá dễ dàng để gỡ lỗi.

Tôi thậm chí đã thực hiện một simple example.

Bạn đang sử dụng một định dạng như EEEE, MMMM d,yyyy h:mm,a trong mã của bạn (tôi giả vào mùa xuân) nhưng bạn quên rằng dịch sang định dạng moment ... và from the docs, mà nên là: dddd, MMMM D,YYYY h:mm,a

để mã thực sự cần được :

$.fn.dataTable.moment("dddd, MMMM D,YYYY h:mm,a"); 
Các vấn đề liên quan