2013-07-07 32 views
5

私はdatatables.net jqueryプラグインを使用しており、asp.net mvc4でデータを入力しています。Datatables.net日付表示形式

私のカラムの1つは日付フォーマットです。私はそれが表示される方法の形式を変更することに興味がありますが、列の型を日付から文字列に変更しません。

私は現在使用しているデフォルトの初期化:私の第四列は日付「作成日」であり、現在、「2013年7月7日午前9時38分11秒〜午後」と表示され

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

「2012年7月7日」または「2013年7月7日」のいずれかで表示させていただきます。

これは比較的簡単な作業だと思っていましたが、私は後に答えを見つけることができませんでした。

可能であれば、追加のプラグインは避けてください。 簡単な方法がありますか?

+0

「おかげで」行(http://meta.stackexchange.com/q/2950/172431)を省略することをお勧めします。「datatables」タグは推奨されません(http://meta.stackexchange。 com/q/128285/172431)。 – madth3

答えて

15

これは私が思いついたものです。レンダリング方法を使用して、私はいつでも日付を表示する方法を操作できます。

$('#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>"; 
      } 
     } 
    ] 
}); 

あなたがNULL可能日時を使用している場合、私は

+0

質問に記載されているように4番目の列を変更しますか、答えの0番目を変更しますか? – zygimantus

+1

@zygimantus、それは重要ですか?答えは、どの列番号にかかわらず、日付をどのように扱うことができるかを理解しておく必要があります。 – PostureOfLearning

0

...これは他の人に役に立つことを願っていますか?あなたは異なるレンダリング機能を使用したいと思う:

 $('#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

プラグインや最新のレガシーバージョンを使用しているかどうか、レンダリング機能は、移動するための方法です。その点から、データ型(書式設定はしません)やJavaScriptで日付をフォーマットする方法はあまり問題になりません。

そのため、私は優秀なmoment.js library(岩の固体、githubの〜30k星、100k +単体テスト、かなりjsの時間を扱うための行き詰まり)をお勧めしたいと思います。