繁体   English   中英

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

[英]change the date format in a grid field ExtJS

简单的问题,但我不知道如何解决它。

我从 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

在您的字段定义中提供从服务器返回的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')

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

如果上述方法对您不起作用,请尝试在网格的“列”配置中添加 xtype: 'datecolumn'。

columns: [{
            text : 'date',
            dataIndex: 'LoginDateTime',
            xtype: 'datecolumn',
            format: 'Y-m-d g:i A',
}]

这应该有效。

使用此函数为网格呈现日期

在您的列定义中,将渲染器定义为

渲染器: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');
}

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM