2011-07-08 64 views
1

服務器返回JSON日期如下,顯示JSON序列日期

{ 
    "LastUpdated": "\/Date(1310117748850)\/" 
} 

我使用ExtJS的電網和日期沒有顯示出來。我如何以M/dd/yyyy格式顯示它?

this.store = new Ext.data.JsonStore({ 
    autoLoad: { 
     params: { 
      start: 0, 
      limit: 10 
     } 
    }, 
    autoDestroy: true, 
    url: '/home/jobs', 
    idProperty: 'Name', 
    fields: ['Name', 
      'Description', 
      'Type', 
      'Group', 
      'Data', 
      'Schedule.Name', 
      'Schedule.Description', { 
       name: 'LastUpdated', 
       type: 'date' 
      }, 
      'Schedule.Expression', 
      'Status'], 
    root: 'data', 
    sortInfo: { 
     field: 'Name', 
     direction: 'ASC' 
    } 
}); 

電網colModel:

{ 
    header: 'Last Updated', 
    dataIndex: 'LastUpdated', 
    width: 80, 
    renderer: Ext.util.Format.dateRenderer('m/d/Y') 
}, 

回答

0
//Grid: 
columns: [      
    {header: 'Last Updated', dataIndex: 'LastUpdated', renderer: Ext.util.Format.dateRenderer('m/d/Y')}       
] 

//store: 
{ 
    field:'LastUpdated', 
    type:'date', 
    convert:function(v,j){ 
    return new Date(v.replace(/\/Date((\d+))\//, '$1')); 
    } 
} 
+0

這不起作用。 – VJAI

+0

你如何定義商店? {field:'LastUpdated',輸入:'date'}? – atian25

+0

是的。我更新了我的問題。 – VJAI

0

在列部分,你可以創建自己的自定義日期渲染:

columns: [      
    {header: 'Last Updated', dataIndex: 'LastUpdated', renderer: dateRenderer}       
] 

,然後創建一個處理您的日期函數:

function dateRenderer(value, id, r) { 
    var yourDate = r.data['uploadDate']; 

    // some js stuff here to strip out just the epoch time 

    var datevar = new Date(yourDateEpoch); 
    return Ext.Date.format(datevar, 'm/d/Y') 
} 
0

對於日期字段,您還需要指定dateFormat。例如:

{name: 'LastUpdated', type: 'date', dateFormat: 'Y-m-d'} 

但在你的情況,你收到其他格式的日期...

0

使用

return new Date(parseInt(v.replace('/Date(', ''))); 
下面

完整的例子,

columns: [      
    { 
     header: 'Last Updated', 
     dataIndex: 'LastUpdated', 
     renderer: Ext.util.Format.dateRenderer('m/d/Y') 
    } 
] 

//store: 
{ 
    field:'LastUpdated', 
    type:'date', 
    convert:function(v, j) { 
     return new Date(parseInt(v.replace('/Date(', ''))); 
    } 
} 
0

你需要的唯一的事要做的是在你的模型中有以下內容

{name:'LastUpdated',輸入:Ext.data.Types.DATE,dateFormat:'time'}

它告訴ExtJS進入該模型的數據是形式紀元時間。