如何让 GridPanel 在 ExtJS 4 中显示正确的时间?

Posted

技术标签:

【中文标题】如何让 GridPanel 在 ExtJS 4 中显示正确的时间?【英文标题】:How can I get a GridPanel to show the correct time in ExtJS 4? 【发布时间】:2011-05-19 15:48:57 【问题描述】:

我有一个带有 ExtJS 4 的 GridPanel。其中一列返回以下格式的时间戳

1900-01-01 14:00:00.0

这是我的 JsonStore 中的专栏


    name: 'clockOut',
    mapping: 'clockOut',
    dateFormat: 'H:i A',
    type: 'date'

我只想显示time 部分,但我得到的只是一个空白列。 当我删除 type: 'data' 时,我得到的数据是上述格式。

有什么建议吗?

谢谢

【问题讨论】:

【参考方案1】:

您可以将渲染器添加到按您想要的方式格式化它的列:


 name: 'clockOut',
 mapping: 'clockOut',
 renderer: dateRenderer

然后是dateRenderer的函数:

function dateRenderer(value, id, r) 
 var d = new Date(r.data['clockOut']);
 return d.format('H:i A');

【讨论】:

+1 用于建议渲染器,但它仍然不起作用。看看我这里的修改:gist.github.com/981266 刚刚确认renderer 什么都不做。我删除了它并留下了type:'date',它呈现了长文本(Mon Jan 01 2010.... 我是个白痴。我没有将列类型更改为datecolumn,因此不需要自定义渲染器。 亲爱的,很高兴你把它修好了!【参考方案2】:

你甚至可以使用 ExtJS 内置的渲染器而不是定义你自己的函数:

renderer: Ext.util.Format.dateRenderer('H:i A')

【讨论】:

以上是关于如何让 GridPanel 在 ExtJS 4 中显示正确的时间?的主要内容,如果未能解决你的问题,请参考以下文章

Extjs GridPanel 验证

在 extjs4.1 和 4.2 中使用 CheckboxModel 删除和添加 Gridpanel 再次失败

ExtJS 4.1 GridPanel 错位列

ExtJs如何在Window窗口中加载页面上的GridPanel??

Javascript - ExtJs - GridPanel组件 - 编辑

ExtJS GridPanel numberColumn - 排序问题