2011-07-11 131 views
4

我正在使用中的Django example服務器端處理。我以這種格式返回日期時間值'yyyy-mm-dd hh:mm:ss'。這些日期時間值當前顯示如下(例如):DataTables我如何顯示日期而不是日期時間

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> 

的日期是4列,即,aTarget [3]。

如何只顯示日期部分?我只是在昨天才開始使用DataTables/JQuery,所以非常感謝一個例子。謝謝。

回答

4

我認爲最好的whay將數據服務器端轉換,就回到你想要的日期格式,但你也可以

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

不是一個真正的完整的答案,因爲得到月返回一個從零開始的索引,所以一月= 0,但在自己的格式 給予線基礎========== ================ getMonth()方法根據當地時間返回指定日期的月份(從0到11)。 注意:1月是0,2月是1,依此類推。 –

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 ""; 
     } 
    } 
] 

有不同的字符串,你可以返回,將與時刻一起工作。確保你指定的偏移量(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 
+0

嗨我有類似的問題。我用過你的代碼,它不工作?我剛剛複製粘貼你的代碼,除了日期格式,我已經把它改爲'dd-MM-yyyy',我希望它能工作,但事實並非如此。你可以提出任何建議嗎? –

2

以前的回覆是使用舊版DataTables API。該syntax for versions 1.10+是:

"columnDefs": [ 
    { 
     "targets": [6, 7], 
     "type" : "date", 
     "render": function (data) { 
      if (data !== null) { 
       var javascriptDate = new Date(data); 
       javascriptDate = javascriptDate.getMonth() + 1 + "/" + javascriptDate.getDate() + "/" + javascriptDate.getFullYear(); 
       return javascriptDate; 
      } else { 
       return ""; 
      } 
     } 
    } 
] 
相關問題