ExtJS 3.3 Format.Util.Ext.util.Format.dateRenderer, возвращающий NaN - PullRequest
8 голосов
/ 14 ноября 2010

Магазин

var timesheet = new Ext.data.JsonStore(
    {
        root: 'timesheetEntries',
        url: 'php/scripts/timecardEntry.script.php',
        storeId: 'timesheet',
        autoLoad: true,
        fields: [
            { name: 'id', type: 'integer' },
            { name: 'user_id', type: 'integer' },
            { name: 'ticket_number', type: 'integer' },
            { name: 'description', type: 'string' },
            { name: 'start_time', type: 'string' },
            { name: 'stop_time', type: 'string' },
            { name: 'client_id', type: 'integer' },
            { name: 'is_billable', type: 'integer' }
        ]
    }
);

Раздел моего кода GridPanel:

columns: [
    {
        id: 'ticket_number',
        header: 'Ticket #',
        dataIndex: 'ticket_number'
    },
    {
        id: 'description',
        header: 'Description',
        dataIndex: 'description'
    },
    {
        id: 'start_time',
        header: 'Start',
        dataIndex: 'start_time',
        renderer: Ext.util.Format.dateRenderer('m/d/Y H:i:s')
    }
...

С сервера я получаю эту строку JSON:

{
   timesheetEntries:[
      {
         "id":"1",
         "user_id":"1",
         "description":null,
         "start_time":"2010-11-13 11:30:00",
         "stop_time":"2010-11-13 15:50:10",
         "client_id":null,
         "is_billable":"0"
      }

Моя сетка отображается нормально. Однако в столбцах времени начала и окончания указано «NaN / NaN / NaN NaN: NaN: NaN», и я не знаю, почему.

Ответы [ 3 ]

5 голосов
/ 14 ноября 2010

Если ваши данные имеют "2010-11-13 11:30:00", должен ли ваш формат быть 'Y-m-d H:i:s'?

РЕДАКТИРОВАТЬ: Извините, конфигурация сетки должна быть в порядке - я имел в виду значение dateFormat в определении поля вашего магазина, которое должно быть 'Y-m-d H:i:s', чтобы ваши входящие данныеможет быть правильно сопоставлен с вашей моделью столбца.Вы также должны включить type: 'date'.Вы не показываете настройки своего магазина, но проблема, вероятно, в том, что одна из этих вещей не так.

0 голосов
/ 05 апреля 2018

Очень простой способ сделать это:

return Ext.util.Format.date(val,'m/d/Y');
0 голосов
/ 29 ноября 2010

Попробуйте

функция renderDate (v, params, record) {var dt = new Date (v);
if (! IsNaN (dt.getDay ())) {return dt.format( 'д / м / Y');}
return '-';}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...