gpt4 book ai didi

javascript - Extjs 检索和写入时间戳

转载 作者:行者123 更新时间:2023-11-29 22:27:32 25 4
gpt4 key购买 nike

所以我有这个小型 Extjs 应用程序,它由一个带有用户的网格组成。每个用户都有一个字段,我从服务器发送他作为时间戳值 (unix) 订阅的日期。

Ext.define('AP.model.User', {
extend: 'Ext.data.Model',
fields: [
{ name: 'id', type: 'int', persist : false },
{ name: 'date_added', type: 'date', dateFormat: 'timestamp'},
{ name: 'username', type: 'string', persist : false }
]
});

网格有一个渲染器,因此我可以将该时间戳渲染为人类可读的格式,例如 29-Oct-2011 04:00 am:

...
{
header: 'Date added',
align: 'center',
sortable: true,
dataIndex: 'date_added',
width: 140,
fixed: true,
renderer: Ext.util.Format.dateRenderer('d-M-Y h:i a')
}
...

现在,一切都按预期工作,值显示正确,但我还有一个表单可以部分编辑每条记录。在我的表单中,我可以通过提供一个字段 xtype: 'datefield' 来编辑添加日期字段,这让我可以选择日期。当我为我的记录选择一个新日期时,它会显示类似 11/29/2011 的内容(从我上面的日期开始),但是当我提交该表单以更新记录时,它会在请求负载中发布类似这样的内容: {"date_added": "NaN-NaN-NaNTNaN:NaN:NaN"}

任何人都可以阐明我如何在 Extjs 中将日期保存在作为时间戳检索的字段上吗?

最佳答案

我最近用网格面板做了这个。

即使数据作为时间戳从数据库返回,使用 type: date 对我来说也很好...

// DATA MODEL
Ext.define('Particle', {
extend: 'Ext.data.Model',
fields: [
{ name: 'particle_id', type: 'long' },
{ name: 'name', type: 'string' },
{ name: 'type', type: 'string' },
{ name: 'start_date', type: 'date' },
{ name: 'sched_date', type: 'date' },
{ name: 'sched_time', type: 'date' },
{ name: 'notes', type: 'string' }
]
});

我在列模型中呈现日期值如下,注意 renderer: 配置选项。 (我正在使用 field: 配置选项,因为我在其中使用了 grideditor 扩展以允许在网格本身上在线编辑数据 - 如果您正在编辑值,则不需要它以单独的形式。)

// GRID COLUMN MODEL 
var columns = [
{text: "Name", flex: 1, sortable: true, dataIndex: 'name', renderer: function(data,meta,record){meta.attr = 'ext:qtitle="Notes:"ext:qtip="' + record.get('notes') + '"'; return data;}},
{text: "Type", width: 55, sortable: true, dataIndex: 'case_lvl'},
{text: "RF Started", width: 80, sortable: true, dataIndex: 'start_date', renderer: Ext.util.Format.dateRenderer('j-M-Y')},
{text: "Sched Date", width: 80, sortable: true, dataIndex: 'sched_date', field: 'datefield', renderer: Ext.util.Format.dateRenderer('j-M-Y')},
{text: "Sched Time", width: 80, sortable: true, dataIndex: 'sched_time', field: 'timefield', renderer: Ext.util.Format.dateRenderer('g:i A')}
];

为了具体回答您的问题,我通过使用 Ext.Date.format() 从字段中选取日期值将日期值作为时间戳字符串返回到数据库。您可以在提交表单之前添加它。

schedDate = Ext.Date.format(Ext.getCmp('schedDate').getValue(),'Y-m-d') + Ext.Date.format(Ext.getCmp('schedTime').getValue(),' H:i:s')

关于javascript - Extjs 检索和写入时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8604477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com