ExtJS:日期字段将日期写回一天?

时间:2018-06-05 18:28:33

标签: date extjs model field crud

我正在使用'Ext.form.field.Date'并且在CRUD过程中它将给定日期写为一天。我的意思是如果我选择05 June 2018,它会写为04 June 2018

我已经检查了相关的modelwidget本身,但似乎并不奇怪!为什么会这样?

这是模型陈述和字段;

Ext.define('MyApp.FooModel', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'mydatefld', type: 'date', dateReadFormat: 'c', dateWriteFormat: 'Y-m-d'},

//and implementation
Ext.define('MyApp.BaseDateFld', {
    extend: 'Ext.form.field.Date',
    xtype: 'basedatefld',
    format: 'd.m.Y',
    flex: 1,
    labelAlign: 'right',
    name: 'MyDate Fld',
    fieldLabel: 'MyDate Fld',
    bind: '{currRec.mydatefld}'
});

每次都将日期保存为XHR请求有效负载;

2018-06-05T21:00:00.000Z //But should be 2018-06-06T06:05:00.000Z

更新: 我已尝试将dateWriteForm更改为'Y-m-d H:i:s''Y-m-d H:i',但仍注意到payload上的更改并继续减少一天并将时间设置为21:00:00

尽管 @Alexander 建议将其改变为另一个,但没有改变。

更新2: 我已经结束了当前的问题,但实际上是一个非常干燥的解决方案,所以不安全!

下面有insertion方法update方法与此几乎相同)并在此处格式化相关的date值,从而获得成功。

服务器接受此字段的date格式为 Ymd ,因此我在dateWriteFormatmodel submitFormatdatefield说明了timestamp 1}}作为'Ym-d',但它会一直用rec写日期值。

当我在方法上检查2018-06-06T21:00:00.000Z param时,它是store(TZ部分不应该在这里!)。并且date param会将2018-06-05T21:00:00.000Z的一天更改为model

仍然不确定为什么我无法转换/格式化fieldrecInsertion: function (rec, store) { store.getProxy().url = store.getProxy().api.create; rec.data.givindate = Ext.Date.format(rec.data.mydate, 'Y-m-d'); //This is current solution to format date! Which is really not safe and will cause DRY. Ext.Ajax.request({ url: store.proxy.url, method: 'POST', jsonData: JSON.stringify(rec.data), callback: function (options, success, response) { Ext.GlobalEvents.fireEvent('showspinner'); if (success) { Ext.GlobalEvents.fireEvent('refreshList'); } else Ext.GlobalEvents.fireEvent('savefailed'); } }); }, 。 谢谢你的建议。

package.json

0 个答案:

没有答案