Как установить дату для выбора даты Sencha Touch
Я пытаюсь установить дату для выбора даты, но не могу установить дату. ниже мой кусок сенсорного кода сенчи.
this.scheduledDatePicker = Ext.create('Ext.field.DatePicker', {
//label: 'To',
//labelAlign: 'right',
//cls: 'form-block',
value: new Date(),
flex: 2.6,
});
и я устанавливаю значение после загрузки страницы или получаю значения из базы данных, используя приведенный ниже код. Я пробовал это много, как вы можете видеть закомментированный код. но не могу установить это значение.
var date= Ext.Date.format(Ext.Date.parse(this.rec.get('bookingDateTime'), "Y-m-d H:i:s"), "d/m/Y");
//var date= Ext.Date.parse(this.rec.get('bookingDateTime'));
//var date= this.rec.get('bookingDateTime');
this.scheduledDatePicker.setValue(date);
Может кто-нибудь сказать мне, почему мой код не работает или какое-либо решение для этой проблемы?
1 ответ
Поле даты принимает дату javascript, однако кажется, что вы ее не предоставляете.
Вы должны проверить, что this.rec.get('bookingDateTime')
возвращается, и как изменить это поле таким образом, чтобы вы получили дату JavaScript.
Я ожидаю, что у вас уже есть модель, в которой вы можете указать это поле типа date с определенным форматом даты:
Ext.define('MyModel', {
fields: [{
name: 'bookingDateTime',
type: 'date',
dateFormat: 'Y-m-d H:i:s' // specify format that is received from the server
}]
});
Тогда ExtJS сделает преобразование для вас, и вы можете просто использовать setValue
без разбора:
this.scheduledDatePicker.setValue(this.rec.get('bookingDateTime'));
Если у вас еще нет модели, вы все равно можете прочитать строку из bookingDateTime, проанализировать ее время от времени и поместить в сборщик:
var date= Ext.Date.parse(this.rec.get('bookingDateTime'), "Y-m-d H:i:s");
console.log(date); // <- if date is null, format is not specified correctly.
this.scheduledDatePicker.setValue(date);
В обоих случаях регистрация в консоли промежуточного результата может помочь точно определить проблему: в большинстве случаев "проанализированная дата" равна нулю, поскольку строка формата не соответствует формату даты, полученному с сервера.