ExtJS 3.3 Format.Util.Ext.util.Format.dateRenderer返回NaN

时间:2010-11-14 03:16:04

标签: javascript extjs

商店

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',我不知道为什么。

3 个答案:

答案 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');