2013-07-07 13 views
5

Utilizzo il plug-in jQuery datatables.net e il popolamento dei dati tramite asp.net mvc4.Formato di visualizzazione data Datatables.net

Una delle mie colonne è un formato di data. Mi interessa cambiare il formato di come viene visualizzato, ma non modificare il tipo di colonna dalla data alla stringa.

Attualmente sto usando l'inizializzazione di default:

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

Il mio 4 ° colonna è una data "Data creazione" e attualmente è visualizzato come "2013/07/07 09:38:11" Mi piacerebbe che fosse visualizzato come "7/07/2013" o "7 lug 2013".

Ho pensato che fosse un compito relativamente facile, ma non sono stato in grado di trovare la risposta che sto cercando.

Vorrei evitare ulteriori plug-in se possibile. C'è un modo semplice che mi manca?

+0

È [consigliato di omettere le righe "Grazie"] (http://meta.stackexchange.com/q/2950/172431) ei tag 'datatables' sono [sconsigliati] (http: //meta.stackexchange. com/q/128285/172431). – madth3

risposta

15

Ecco cosa mi è venuto in mente. Usando come esegue il rendering posso manipolare il modo in cui la data viene visualizzata in ogni modo che voglio.

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

Spero che questo sarà utile per gli altri ...

+0

Cambia la 4a colonna come hai dichiarato nella domanda o 0 come nella tua risposta? – zygimantus

+1

@zygimantus, importa? La risposta (dovrebbe) ti dà una comprensione di come puoi gestire le date, indipendentemente dal numero di colonna. – PostureOfLearning

0

Se si utilizza un DateTime nullable? ti consigliamo di utilizzare una diversa funzione di rendering:

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

Sia che si utilizzi una versione precedente del plugin o la più recente, il render funzione è la strada da percorrere. Da quel punto diventa una domanda non tanto di datatables (che non fa alcuna formattazione) e come formattare una data in JavaScript.

Per questo, mi sento di raccomandare l'eccellente moment.js library (solido solido, ~ 30k stelle su github, test di 100k + unità, praticamente il go-to per gestire il tempo in js).