更改网格字段ExtJS中的日期格式

时间:2014-02-07 09:18:00

标签: date extjs extjs4

简单的问题,但我无法弄清楚如何解决它。

我收到了JSON的小时日期,格式为:

"date_deb":"2013\/12\/28 23:00:00"

请注意\是用于转义/并且不显示。 我想以这种格式将这些日期显示在我的网格中:

"28/12/2013 23:00:00"

我已经在我的字段定义中尝试了这个:

{name:'date_deb', type: 'date', dateFormat: 'd-m-Y H:i:s'}

但它不起作用,没有任何显示。 通过检查ExtJS文档,我已经看到了这个:

dateReadFormat

我正在使用ExtJS4.2

3 个答案:

答案 0 :(得分:8)

在您的字段定义中提供从服务器返回的dateFormat

{name:'date_deb', type: 'date', dateFormat: 'Y/m/d H:i:s'}

然后在您的列配置中使用ExtJS的内置dateRenderer,其格式为您希望使用以下格式呈现日期:

renderer: Ext.util.Format.dateRenderer('d/m/Y H:i:s')

如果您有一个阅读器(从服务器读取数据) AND 一个编写器(将修改后的数据发送回服务器),您只需要dateReadFormatdateWriteFormat需要不同的日期格式。否则dateFormat将作为两者的默认格式。

答案 1 :(得分:0)

使用此功能渲染网格的日期

在列定义中将渲染器定义为此

渲染器:renderDate

示例{ dataIndex: 'TaskEndDate', header: 'PlannedEndDate', flex: 1, renderer: renderDate },

function renderDate(value) 
{
    if (value == '' || value == undefined) {
        return '';
    }

    else {
        getDate = new Date(parseInt(value.substr(6)));
        }

   return Ext.util.Format.date(getDate, 'm-d-Y');
}

答案 2 :(得分:0)

在您的列配置中使用“格式化程序”。

    formatter: 'date("d/m/Y H:i:s")'