DataTables如何仅显示日期而不是日期时间

hal*_*ull 4 jquery datatables

我使用的是服务器端的处理按照该Django的例子的数据表.我以这种格式'yyyy-mm-dd hh:mm:ss'返回datetime值.这些日期时间值当前显示如下(例如):

2011年12月18日晚上11:59

我想只显示日期部分而不是日期和时间.

这是我在html页面中的内容:

<script type="text/javascript">
/* <![CDATA[ */
$(document).ready(function() {
        $('#certs-table').dataTable({
                "bJQueryUI": true,
                "sPaginationType": "full_numbers",
                "bProcessing": true,
                "bServerSide": true, 
                "sAjaxSource": "/cars/get_cars_list/",
                "iDisplayLength": 10,
                "aoColumnDefs": [
                        { "aTargets": [0], "bVisible": false, "bSearchable": false},
                        { 
                          "aTargets": [1], 
                           "fnRender": function ( oObj ) {
                                return '<a href=\"/cars/' + oObj.aData[0] + '/\">' + oObj.aData[1] + '</a>';
                            },
                          "bSearchable": true, 
                        },
                        { "aTargets": [2], "bSearchable": true},
                        { "aTargets": [3], "bSearchable": false, "sType": 'date'},
                ]
        });
} );
/* ]]> */
</script>
Run Code Online (Sandbox Code Playgroud)

日期是第4列,即aTarget [3].

如何只显示日期部分?我昨天才开始使用DataTables/JQuery,所以非常感谢一个例子.谢谢.

Ale*_*lex 5

通常最好将UTC日期作为JSON字符串从服务器返回,然后使用用户的本地格式设置在浏览器中对其进行格式化.我喜欢使用moment.js来进行格式化.例:

"aoColumnDefs": [
    {   //format the date for local time
        "aTargets" : [ 1, 5], //indexes of whatever columns you need to format
        "mRender": function ( data, type, full ) {
            if(data){
                var mDate = moment(data);
                return (mDate && mDate.isValid()) ? mDate.format("L LT") : "";
            }
            return "";
        }
    }
]
Run Code Online (Sandbox Code Playgroud)

你可以返回不同的字符串,它们可以随时使用.确保指定偏移量(Z),+0000否则日期将被解析为本地时间.

moment("2010-10-20 4:30"); // parsed as 4:30 local time
moment("2010-10-20 4:30 +0000"); // parsed as 4:30 UTC 
Run Code Online (Sandbox Code Playgroud)