Я использую 'Ext.form.field.Date'
и в процессе CRUD записывает заданную дату как один день назад.Я имею в виду, если я выберу 05 June 2018
, он будет записан как 04 June 2018
.
Я проверил родственные model
и widget
, но ничто не кажется странным!Почему это может быть?
Вот оператор модели и поле;
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
Также пыталсязамените TS компьютера на другой, как рекомендовано @ Alexander , но ничего не изменилось.
Обновление 2: Я преодолел текущую проблему, но на самом деле очень СУХОЕ решение,так не безопасно!
Ниже приведен insertion
метод (update
метод почти такой же, как этот) и форматирование соответствующего значения date
здесь, таким образом, стало успехом.
Сервер, принимающий формат date
для этого поля как Гм , поэтому я указал dateWriteFormat
на model
и submitFormat
на datefield
как 'Гм-д ', но он продолжает записывать значение даты с помощью timestamp
.
Когда я проверяю rec
параметр в методе, он выглядит как 2018-06-06T21:00:00.000Z
(Часть TZ не должна быть здесь!).И store
param изменяет givin date
на один выходной день как 2018-06-05T21:00:00.000Z
.
Все еще не уверен, почему я не могу преобразовать / отформатировать через model
или field
.Спасибо за советы.
recInsertion: 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');
}
});
},