jquery easyui datagrid columns日期格式化问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xingzhishen/article/details/83759158

使用easyui的datagrid,从后端返回的json字符串中的日期,直接赋值到createtime这个column时,出现了错误显示。

显示的样子是:[object Object]。明显是一个对象,使用formatter做了格式化后,

{
            field : 'createtime',
            title : '创建/修改时间',
            width : 220,
            align : 'center',
            formatter : function(value){
                var date = new Date(value);
                var y = date.getFullYear();
                var m = date.getMonth() + 1;
                var d = date.getDate();
                var h = date.getHours();
                var M = date.getMinutes();
                var s = date.getSeconds();
                return y + '-' +m + '-' + d + ' ' + h + ':' + M + ':' + s;
            },

显示的样子是:NaN-NaN-NaN NaN:NaN:NaN

在formatter中,alert(date);提示invalid date。看来,是value的问题。从后端debug,得到的json字符串看,createtime部分是这样的一个字符串:

{"createtime":{"date":5,"day":1,"hours":22,"minutes":18,"month":10,"nanos":0,"seconds":16,"time":1541427496000,"timezoneOffset":-480,"year":118},

createtime这个串到前端后还是一个json对象,如果直接new Date(这个json对象),确实不能得到正确的日期,其参数应该为一个时间戳,所以,应该是new Date(json对象.time),这样就可以得到正确的日期时间了。

修改后为:

            formatter : function(value){
                var date = new Date(value.time);
                var y = date.getFullYear();
                var m = date.getMonth() + 1;
                var d = date.getDate();
                var h = date.getHours();
                var M = date.getMinutes();
                var s = date.getSeconds();
                return y + '-' +m + '-' + d + ' ' + h + ':' + M + ':' + s;
            },

日期显示正常。

猜你喜欢

转载自blog.csdn.net/xingzhishen/article/details/83759158