1. 程式人生 > >jquery easyui datagrid columns日期格式化問題

jquery easyui datagrid columns日期格式化問題

使用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;
            },

日期顯示正常。