第一种 我自己用的是第三种,正常可以用
java里面时间类型转换成json数据就成这样啦
"createTime":{"date":30,"day":3,"hours":15,"minutes":14,"month":3,"nanos":0,"seconds"
:38,"time":1209539678000,"timezoneOffset":-480,"year":108}
在gridpanel里面就会显示成[object,object]
在store里面这样写
{
name : 'createTime',
type : 'date',
mapping : 'createTime.time',
dateFormat : 'time'
}
在ColumnModel里面这样写
{
header : "创建时间",
sortable : true,
dataIndex : 'createTime',
renderer : Ext.util.Format.dateRenderer('Y-m-d H:i:s')
}
就会显示成你想要的格式不用在后台处理成字符串啦。
第二种
EXT显示json返回的时间格式数据
json返回时间的格式大多数都是以这种形式返回的,
Js代码
1. "createTime":{"nanos":0,"time":1154834910000,"minutes":28,"seconds":30,"hours":11,"month":7,"year":106,"timezoneOffset":-480,"day":0,"date":6}
把这种格式显示在formPanel中
Js代码
1. jsonReader = new Ext.data.JsonReader({
2. root : 'root', // 返回的数据集合
3. totalProperty : 'totalCount' // 总记录数
4. }, Ext.data.Record.create([
5. {
6. name : 'createTime',
7. mapping : 'createTime.time',
8. type : 'date',
9. dateFormat : 'yyyy-MM-dd',
10. convert : function(v) { // 采用转换形式
11. return new Date(v)
12. }]))
把这种格式显示在gridPanel中
Js代码
1. {
2. header : "创立时间",
3. width : 80,
4. dataIndex : 'createTime',
5. renderer : function(v) {
6. return new Date(v).format('Y-m-d')
7. },
8. sortable : true
9. }
可以用
第三种
使用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)));
}
});