商店
var timesheet = new Ext.data.JsonStore(
{
root: 'timesheetEntries',
url: 'php/scripts/timecardEntry.script.php',
storeId: 'timesheet',
autoLoad: true,
fields: [
{ name: 'id', type: 'integer' },
{ name: 'user_id', type: 'integer' },
{ name: 'ticket_number', type: 'integer' },
{ name: 'description', type: 'string' },
{ name: 'start_time', type: 'string' },
{ name: 'stop_time', type: 'string' },
{ name: 'client_id', type: 'integer' },
{ name: 'is_billable', type: 'integer' }
]
}
);
我的GridPanel代码的一部分:
columns: [
{
id: 'ticket_number',
header: 'Ticket #',
dataIndex: 'ticket_number'
},
{
id: 'description',
header: 'Description',
dataIndex: 'description'
},
{
id: 'start_time',
header: 'Start',
dataIndex: 'start_time',
renderer: Ext.util.Format.dateRenderer('m/d/Y H:i:s')
}
...
从服务器,我收到这个JSON字符串:
{
timesheetEntries:[
{
"id":"1",
"user_id":"1",
"description":null,
"start_time":"2010-11-13 11:30:00",
"stop_time":"2010-11-13 15:50:10",
"client_id":null,
"is_billable":"0"
}
我的网格面板渲染得很好。但是,我的开始和停止时间列读作'NaN / NaN / NaN NaN:NaN:NaN',我不知道为什么。
答案 0 :(得分:5)
如果您的数据有"2010-11-13 11:30:00"
,那么您的格式不应为'Y-m-d H:i:s'
吗?
编辑抱歉,网格配置应该没问题 - 我指的是商店字段定义中的dateFormat
值,该值应为'Y-m-d H:i:s'
,以便您的传入的数据可以正确映射到列模型。您还应该包含type: 'date'
。您没有显示您的商店配置,但问题可能是其中一个错误。
答案 1 :(得分:0)
试试这个
function renderDate(v,params,record)
{
var dt = new Date(v);
if(!isNaN(dt.getDay())){
return dt.format('d / m / Y');
}
返回' - ';
}
答案 2 :(得分:-1)
一种非常简单的方法:
return Ext.util.Format.date(val,'m/d/Y');