javascriptjquerydatetimedatatablesisodate

How to format date displayed in Datatable


I have a function that displays objects in my array using datatables. I'm a bit a problem with changing the date and time format from ISODate to human readable format.

myData

var datas = {“rows” : [{_id: "2017-01-03T00:00:00.000Z", Humidity: 24, Temperature: 18},

{_id: "2017-01-04T00:00:00.000Z", Humidity: 23.071428571428573, Temperature: 18.928571428571427} ]}

JS script

var table = $('#myTable').DataTable( { 
    data: datas.rows,
            "columns": [
                { data: "_id" },
                { data: "Temperature" },
                { data: "Humidity" }

            ]
    });

Thanks for your anticipated help.


Solution

  • As noted by @Paul Abbott above, momentjs and a render function should see you right:

    var datas = {
        "rows": [
            {
                _id: "2017-01-03T00:00:00.000Z", 
                Humidity: 24, 
                Temperature: 18
            },
            {
                _id: "2017-01-04T00:00:00.000Z", 
                Humidity: 23.071428571428573, 
                Temperature: 18.928571428571427
            } 
        ]
    }
    
    
    var table = $('#myTable').DataTable( { 
        data: datas.rows,
        "columns": [
            { 
                data: "_id",
                render: function(data, type, row){
                    if(type === "sort" || type === "type"){
                        return data;
                    }
                    return moment(data).format("MM-DD-YYYY HH:mm");
                }
            },
            { 
                data: "Temperature" 
            },
            { 
                data: "Humidity" 
            }
    
        ]
    });