日期:2014-05-17  浏览次数:20741 次

ExtJs 处理 datetime 问题
我在用ExtJs来做一个GridPanel 

我从web service 传出一个已转成json格式 的 datetime 类型的数据. 显示为 /Date(1262577888997)/ 的样子.. 

我应该怎样做才能正确显示时间呢??  

以下是代码.


Store


JScript code


    var myStore = new Ext.data.JsonStore({
        autoLoad: true,
        proxy: new Ext.data.HttpProxy({
            url: 'PttGetData.asmx/qryCancelableById',
            headers: { 'Content-type': 'application/json' }
        }),
        root: 'd',
        fields: ['TermId',
        { name: 'MsgTime' },        
         'CardId', 'SimNo', 'ShiftSN', 'CmdType', 'CmdMsg', 'IsSucc', 'T_isRec', 'T_IsCommit',
         { name: 'SendTime'},
         { name: 'RecvTime'},
         { name: 'CommitTime'}]
    });







GridPanel

JScript code



var grid = new Ext.grid.GridPanel({
        store: myStore,
        columns: [
                        { header: "信息收发时间", dataIndex: 'MsgTime' },
                        { header: "终端号", dataIndex: 'TermId', sortable: true },
                        { header: "车牌号", dataIndex: 'CardId', sortable: true },
                        { header: "终端sim卡号", dataIndex: 'SimNo', sortable: true },
                        { header: "作业流水号/航次号/班次号", dataIndex: 'ShiftSN', sortable: true },
                        { header: "命令类型", dataIndex: 'CmdType', sortable: true },
                        { header: "命令信息内容", dataIndex: 'CmdMsg', sortable: true },
                        { header: "收发是否成功", dataIndex: 'IsSucc', sortable: true },
                        { header: "终端是否收到", dataIndex: 'T_isRec', sortable: true },
                        { header: "终端是否人工确认", dataIndex: 'T_IsCommit', sortable: true },
                        { header: "下发时间", dataIndex: 'SendTime', sortable: true },
                        { header: "接收时间", dataIndex: 'RecvTime', sortable: true },
                        { header: "人工确认时间", dataIndex: 'CommitTime', sortable: true }
                    ],
        sm: new Ext.grid.RowSelectionModel({ singleSelect: true }),
        viewConfig: {
            forceFit: true
        },
        height: 210,
        width: 1024,
        split: true,
        region: 'north'

    });








谢谢


------解决方案--------------------
比如你的最后一行

 { header: "人工确认时间", dataIndex: 'CommitTime', sortable: true,
renderer: Ext.util.Format.dateRenderer('Y年m月d日 H时i分s秒') }

------解决方案--------------------
把你的日期一个一个传回来测试
可能是返回格式或者类型对应不上
------解决方案--------------------
ajax时js抛出‘例外被抛出且未被接住’异常,根源在于JSON,传入了非法的json字符串所以才报的这个错误。
你使用eval的时候,改下这样试试

Java code
var str="new " + record.substr(1, record.length - 2);
return eval("(" +str+")").toLocaleString();

------解决方案--------------------
EXT 日期转化
http://blog.csdn.net/liu_moyan/archive/2009/12/17/5023536.aspx
------解决方案--------------------
function rendeDate(record) {
return eval("new " + record.substr(1, record.length - 2)).toLocaleString()+")");
}
------解决方案--------------------
探讨
比如你的最后一行

{ header: "人工确认时间", dataIndex: 'CommitTime', sortable: true,