#extjs
#extjs
Вопрос:
Я новичок в ExtJS. У меня есть 2 datecolumns, которые я хотел бы иметь в формате UTC. Для этого я использую (из Интернета) :
renderer: function (value) {
return moment.utc(value).format('YYYY-MM-DD HH:mm:ssZZ');
},
2 datecolumns определяются следующим образом :
..., {
xtype: 'datecolumn',
header: 'Start Date',
dataIndex: 'start_date',
flex: 1,
editor: {
xtype: 'datetimefield',
itemId: 'startdt',
allowBlank: false,
format: 'd/m/Y H:i:s',
},
renderer: function (value) {
return moment.utc(value).format('YYYY-MM-DD HH:mm:ssZZ');
},
},
{
xtype: 'datecolumn',
header: 'End Date',
dataIndex: 'end_date',
flex: 1,
editor: {
xtype: 'datetimefield',
itemId: 'enddt',
allowBlank: false,
format: 'd/m/Y H:i:s',
},
renderer: function (value) {
return moment.utc(value).format('YYYY-MM-DD HH:mm:ssZZ');
},
},...
Для модели :
Ext.define('xxxxx.model.Deployment', {
extend: 'Ext.data.Model',
fields: [{
name: 'id',
type: 'int',
persist: true
}, {
name: 'name',
type: 'string'
}, {
name: 'start_date',
type: 'date',
}, {
name: 'end_date',
type: 'date'
}, ...
Когда я нажимаю на одно из полей datetimefield, чтобы отредактировать его, он добавляет один час, который соответствует местному времени (французскому), и формат отличается :
Пожалуйста, как предотвратить это во время редакции? Я потратил почти 2 дня, пытаясь это исправить…
Спасибо за любую помощь
Карим
Ответ №1:
Попробуйте ввести ‘moment.utc (значение).формат (‘ГГГГ-ММ-ДД ЧЧ: мм: ssZZ’);’ при преобразовании или вычислении модели. Что-то вроде:
{
name: 'end_date',
type: 'date',
convert: function(value) { // or calculate, have a look in the api doc
return moment.utc(value).format('YYYY-MM-DD HH:mm:ssZZ');
}
}
После этого удалите часовой пояс conv из средства визуализации.
Комментарии:
1. Спасибо, я попробовал это.поля datetime больше не сохраняются (null), и как только они установлены в форме, они снова преобразуются
2. Вы удалили логику utc из средства визуализации? В любом случае, пожалуйста, создайте какой-нибудь пример в fiddle, вам трудно помочь без рабочего кода.