Ищете некоторую помощь относительно того, как мое поле даты отображается через мой графический интерфейс.ExtJS/Javascript - поле даты преобразуется неправильно через GUI
Вопросы:
Я выбираю поле даты с помощью календаря - если я выбираю 2016-02-07 и сохранить его в базе данных, почему графический интерфейс отображает дату в GMT (2016 -02-06)
Для полей start_time и end_time, почему они сохраняются в моей базе данных с «2008-01-01T»?
Некоторые справочная информация:
Тип базы данных: PostgreSQL
ExtJS: 5.0.1
База данных хранит значения, как:
дата = 2016-02 -07
start_t IME = 2008-01-01T05: 00: 00
END_TIME = 2008-01-1T07: 00: 00
графический интерфейс отображает значения, как: даты
= 2016-02-06 (похоже, что он преобразовывает значение в БД GMT)
start_time = 5:00
END_TIME = 7:00 утра
Хранение:
Store.model.Base.defineModel(
'Ticket',
[{name: 'attributes_id', type: 'int'},
{name: 'number', type: 'string'},
{name: 'date', type: 'date'},
{name: 'start_time', type: 'date', dateWriteFormat: 'g:i A'},
{name: 'end_time', type: 'date', dateWriteFormat: 'g:i A'}
],
true
);
Вид:
xtype: 'fieldset',
title: 'Details',
layout: { type: 'hbox', align: 'stretch' },
items: [{
xtype: 'container',
layout: 'vbox',
style: { paddingRight: '10px' },
items: [{
xtype: 'textfield',
labelAlign: 'top',
fieldLabel: 'Number',
id: 'Number',
name: 'number',
width: 250
},
{
xtype: 'datefield',
labelAlign: 'top',
fieldLabel: 'Date',
format: 'Y-m-d',
submitFormat: 'c',
id: 'Date',
name: 'date',
width: 250
},
{
xtype: 'timefield',
labelAlign: 'top',
fieldLabel: 'Start Time',
id: 'StartTime',
name: 'start_time',
minValue: '12:00 AM',
maxValue: '11:00 PM',
format: 'g:i A',
increment: 60,
width: 250
},
{
xtype: 'timefield',
labelAlign: 'top',
fieldLabel: 'End Time',
id: 'EndTime',
name: 'end_time',
minValue: '12:00 AM',
maxValue: '11:00 PM',
format: 'g:i A',
increment: 60,
width: 250
}]
},]
Сохранить:
_constructSaveStore: function(config) {
var me = this;
var store = config.store;
this._tasks.push({fn: function() {
if(store.getModifiedRecords().length > 0 ||
store.getRemovedRecords().length > 0)
{
store.sync({callback: function(records, operation, success) {
me.setStatus(success);
if(!operation.wasSuccessful()) {
var message = "Failed to save changes on server.";
if(operation.hasException())
message = message + " " + operation.getError();
var app = CarrierDMZ.getApplication();
app.toast(message,'error');
}
}
});
}
else {
me.setStatus(true);
}
}});
}
Форма Определение:
region: 'center',
xtype: 'form',
id: 'TicketForm',
autoScroll: true,
bodyPadding: 10,
layout: {
type: 'vbox',
align: 'stretch'
}
Спасибо!
Самый важный код отсутствует. Пожалуйста, покажите, как вы отправляете свои данные на сервер. Используете ли вы 'store.sync',' model.save' или 'form.submit'? И как ваша форма определена? – Alexander
Я использую функцию store.sync - я добавил его и определение формы в код выше. – Jukebox