2013-07-07 58 views
5

Tôi đang sử dụng plugin jquery datatables.net và điền dữ liệu thông qua asp.net mvc4.Định dạng hiển thị ngày tháng Datatables.net

Một trong các cột của tôi là định dạng ngày. Tôi quan tâm đến việc thay đổi định dạng của cách hiển thị nhưng không thay đổi loại cột từ ngày thành chuỗi.

Tôi hiện đang sử dụng khởi tạo mặc định:

$('#data-table').dataTable(); 

cột thứ 4 của tôi là một ngày "Created Date" và hiện đang hiển thị là "2013/07/07 09:38:11" Tôi muốn nó được hiển thị là "7/07/2013" hoặc "7 tháng 7 năm 2013".

Tôi nghĩ rằng đây là một nhiệm vụ tương đối dễ dàng nhưng không thể tìm thấy câu trả lời tôi theo sau.

Tôi muốn tránh các plugin bổ sung nếu có thể. Có cách nào đơn giản mà tôi bị thiếu không?

+0

Đó là [đề nghị bỏ qua dòng "Cảm ơn"] (http://meta.stackexchange.com/q/2950/172431) và thẻ 'datatables' là [không được khuyến nghị] (http: //meta.stackexchange. com/q/128285/172431). – madth3

Trả lời

15

Đây là những gì tôi nghĩ ra. Bằng cách sử dụng nó làm thế nào tôi có thể thao tác theo cách ngày được hiển thị cho dù sao tôi muốn.

$('#data-table').dataTable({ 
    "aoColumnDefs": [ 
     { 
      "aTargets": [0], 
      "bSearchable": false, 
      "sType": 'date', 
      "fnRender": function (oObj) { 
       var javascriptDate = new Date(oObj.aData[0]); 
       javascriptDate = javascriptDate.getDate()+"/"+(javascriptDate.getMonth()+1)+"/"+javascriptDate.getFullYear(); 
       return "<div class='date'>"+javascriptDate+"<div>"; 
      } 
     } 
    ] 
}); 

Tôi hy vọng điều này sẽ hữu ích cho những người khác ...

+0

Có thay đổi cột thứ 4 như bạn đã nêu trong câu hỏi hoặc câu hỏi thứ 0 như trong câu trả lời của bạn không? – zygimantus

+1

@zygimantus, có quan trọng không? Câu trả lời (nên) cung cấp cho bạn một sự hiểu biết về cách bạn có thể đối phó với ngày, bất kể số cột. – PostureOfLearning

0

Nếu bạn đang sử dụng một DateTime nullable? bạn sẽ muốn sử dụng chức năng hiển thị khác:

 $('#users-tbl').DataTable({ 
     columns: [ 
      { "data": "ID", "visible" : false}, 

      {"data": "MyDateField", 
      "type": "date ", 
      "render":function (value) { 
       if (value === null) return ""; 

        var pattern = /Date\(([^)]+)\)/; 
        var results = pattern.exec(value); 
        var dt = new Date(parseFloat(results[1])); 

        return (dt.getMonth() + 1) + "/" + dt.getDate() + "/" + dt.getFullYear();} 
      } 
     ]}; 
0

Cho dù sử dụng phiên bản cũ của plugin hoặc chức năng kết xuất mới nhất là cách để thực hiện. Từ thời điểm đó, nó trở thành một câu hỏi không quá nhiều datatables (mà không làm bất kỳ định dạng) và làm thế nào để định dạng một ngày trong JavaScript.

Vì lý do đó, tôi khuyên bạn nên xuất sắc moment.js library (đá vững chắc, ~ 30k sao trên github, 100k + bài kiểm tra đơn vị; khá nhiều việc cần làm để xử lý thời gian trong js).

Các vấn đề liên quan