ExtJS网格渲染器时间00:00:00(hh:mm:ss)和时区

时间:2014-06-20 18:29:18

标签: extjs extjs4 extjs4.2

我有一个带有TimeField编辑器的网格。值的格式如下:

06:00:00 (hh:mm:ss)

现在一切都很好,除了我的渲染器功能没有检测到一个有效的日期值:

text: 'InTime',
    dataIndex: 'InTime',
    editor: {
        xtype: 'timefield',
        format: 'H:i',
        altFormats: 'H:i',
        selectOnFocus: true,
        minValue: '12:00 AM',
        increment: 60,
        maxValue: '11:00 PM'
    },
    renderer: function (value, metaData, record, row, col, store, gridView) {
        alert(value);
        return Ext.isDate(value) ? Ext.Date.format(value, 'H:i') : value;
    }

当它检查Ext.isDate时,我得到了错误,这就是为什么从时间字段中选择一个值的格式不正确的原因。

这是我的网格单元格图像,第一个单元格在我更改其值之前是原始单元格,第二个单元格是我从TimeField中选择后得到的值

enter image description here

有任何线索吗?

3 个答案:

答案 0 :(得分:0)

我还没有测试过您的整个代码,但只是在第一眼看到我看到您正在使用

格式和altFormats具有相同的值,并且都定义为' H:i'这是24小时:分钟,上午12:00和下午11:00无效参赛作品。

您发布商店的数据输出非常重要,这样我们就可以看到您的inTime列的格式,并发布模型的代码。

  • 使用console.log。
  • 而不是使用警报

答案 1 :(得分:0)

最近我遇到了同样的问题。您应该使用格式属性作为列和编辑器:

 {
        xtype: 'datecolumn',
        header: 'Hora',
        dataIndex: 'time',
        format: 'H:i',
        editor: {
            xtype: 'timefield',
            format: 'H:i'
        }
    }

这项工作适合我。

答案 2 :(得分:0)

从模型字段定义中

删除 type :'string'属性

fields: [{ name: 'InTime',  }] // don't specify type

这可行

renderer: function (value) {
                return Ext.isDate(value) ? Ext.Date.format(value, 'H:i') : value;
            }