How to format date displayed in Datatable

48.5k views Asked by At

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.

1

There are 1 answers

16
annoyingmouse On BEST ANSWER

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

    ]
});