gpt4 book ai didi

javascript - ExtJS - 将日期值发布为 Unix 时间戳

转载 作者:行者123 更新时间:2023-11-28 02:50:04 25 4
gpt4 key购买 nike

我使用 editorgrid 来编辑 JsonStore 中的元素。 JsonStore 使用 HttpProxy 来更新后端数据库。

我的问题是后端 API 期望 fromTstoTs 为 Unix 时间戳,但是当更新记录时,生成的 http post 包含格式如下的日期:2010 年 10 月 20 日星期三 00:00:00 UTC+0200

我在 API 文档中搜索了控制帖子格式的参数,但没有找到任何内容。有没有简单的方法可以做到这一点?

 myJsonStore = new Ext.data.JsonStore({
autoLoad: true,
autoSave: true,
proxy: new Ext.data.HttpProxy({
api: {
create: '/create/',
read: '/read/',
update: '/update/',
destroy:'/destroy/'
}
}),
writer: new Ext.data.JsonWriter({
encode: true,
writeAllFields: true
}),
idProperty: 'id',
fields: [
{name: 'id', type: 'int'},
{name: 'fromTs', type: 'date', dateFormat:'timestamp'},
{name: 'toTs', type: 'date', dateFormat:'timestamp'}
]
});

editorgrid 配置如下:

 {
xtype: 'editorgrid',
clicksToEdit: 1,
columns: [
{header: "Id", dataIndex: 'id', editable: false},
{header: "From", dataIndex: 'fromTs', editor: new Ext.form.DateField({format: 'd.m.Y', startDay: 1}), xtype: 'datecolumn', format: 'd.m.Y'},
{header: "To", dataIndex: 'toTs', editor: new Ext.form.DateField({format: 'd.m.Y', startDay: 1}), xtype: 'datecolumn', format: 'd.m.Y'}
],
store: myJsonStore
}

最佳答案

我知道这个案例很旧,但我找到了解决这个问题的方法,但我从未在这里发布过。

我向代理的 beforewrite 事件添加了一个监听器,并在那里操纵了 post 参数

proxy: new Ext.data.HttpProxy({
api: {
create: '/create/',
read: '/read/',
update: '/update/',
destroy:'/destroy/'
},
listeners: {
beforewrite: function(proxy, action, record, params) {
var fromTs = record.data.fromTs;
var toTs = record.data.toTs;

if(record.data.fromTs) record.data.fromTs = fromTs.format('U');
if(record.data.toTs) record.data.toTs = toTs.format('U');

// Update record to be sent
// root = store.reader.root
params.root = Ext.util.JSON.encode(record.data);

// Restore record
record.data.fromTs = fromTs;
record.data.toTs = toTs;
}
}
})

关于javascript - ExtJS - 将日期值发布为 Unix 时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3977165/

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