Как установить дату для выбора даты 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);

В обоих случаях регистрация в консоли промежуточного результата может помочь точно определить проблему: в большинстве случаев "проанализированная дата" равна нулю, поскольку строка формата не соответствует формату даты, полученному с сервера.

Другие вопросы по тегам