数据表中的日期呈现和新的Date()在IE11和Safari中不起作用

时间:2019-03-26 06:34:43

标签: javascript jquery

我的代码正在使用数据表,其中我使用渲染日期函数,它在chrome中工作,但在IE11和Safari中显示NaN。请帮我如何解决这个问题 这是我的代码段
数据表

 {
    "data": 'starttime',
    "render": function (data) {
        var date = new Date(data);
        var month = date.getMonth() + 1;
        return (month.length > 1 ? month : "0" + month) + "/" + date.getDate() + "/" + date.getFullYear() + " - " + date.getHours() + ":" + date.getMinutes();
    }
}

Js代码

var date = new Date(driver_data[i].starttime);
var month = date.getMonth() + 1;
ps = (month.length > 1 ? month : "0" + month) + "/" + date.getDate() + "/" + date.getFullYear() + " - " + date.getHours() + ":" + date.getMinutes();

2 个答案:

答案 0 :(得分:0)

尝试一下

{
    "title": "D.O.B",
    "data": "dob",
    "render": function (data) {
         var d = new Date(data),
         month = d.getMonth() + 1,
         day = d.getDate(),
         year = d.getFullYear(),
         hour = d.getHours(),
         minutes = d.getMinutes(),
         seconds = d.getSeconds();
         return day + ' – ' + month + ' – ' + year + ' ' + hour + ':' + minutes + ':' + seconds;        
     }
}

答案 1 :(得分:0)

Safari的较旧版本IE不支持ISO格式字符串日期的解析,因此会出现NaN错误。您可以实现自己的parsers或只使用moment.js库,这使它变得非常容易。

{
    "data": 'starttime',
    "render": function (data) {
        return moment(data).format("MM/DD/YYYY-hh:mm");
    }
}

这里有更多format

的方法