使用JSONSerializer.toJSON()转换Date类型就会变成: "modifyTime":{"date":30, "day":3, "hours":15, "minutes":14, "month":3, "nanos":0, "seconds":38, "time":1209539678000, "timezoneOffset":-480, "year":108},Ext的grid不能直接显示
解决方法1:
后台使用:jsonConfig.registerJsonValueProcessor(Date.class, new DateJsonValueProcessor("yyyy-MM-dd hh:mm:ss"));
解决方法2:
前天处理:
function renderDate(format) {
return function(v) {
var JsonDateValue;
if (Ext.isEmpty(v))
return '';
else if (Ext.isEmpty(v.time))
JsonDateValue = new Date(v);
else
JsonDateValue = new Date(v.time);
return JsonDateValue.format(format || 'Y-m-d H:i:s');
};
};
{
header : "birthday",
renderer : renderDate('Y-m-d'),
dataIndex : 'birthday',
align : 'center'
}
如果是Form:
Ext.override(Ext.form.DateField, {
setValue : function(date) {
if (Ext.isEmpty(date)) {
}
else if (Ext.isEmpty(date.time)) {
date = new Date(date);
}
else {
date = new Date(date.time);
}
Ext.form.DateField.superclass.setValue.call(this, this.formatDate(this.parseDate(date)));
}
});