服务器以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'
}
});
在Grid colModel中:
{
header: 'Last Updated',
dataIndex: 'LastUpdated',
width: 80,
renderer: Ext.util.Format.dateRenderer('m/d/Y')
},
答案 0 :(得分: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')
}
答案 1 :(得分: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'));
}
}
答案 2 :(得分:0)
对于日期字段,您还需要指定dateFormat。 E.g:
{name: 'LastUpdated', type: 'date', dateFormat: 'Y-m-d'}
但在您的情况下,您会收到其他格式的日期......
答案 3 :(得分: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(', '')));
}
}
答案 4 :(得分:0)
您唯一需要做的就是在模型中使用以下内容
{name:'LastUpdated',type:Ext.data.Types.DATE,dateFormat:'time'}
它告诉ExtJS,进入该字段模型的数据具有纪元时间。