Как отображать время и дату в extjs - PullRequest
6 голосов
/ 14 января 2010

Как я могу отобразить дату / время на панели сетки. Дата поступает от серверной веб-службы asp.net как:

{9/14/2009 10:23:00 AM}

Я получаю сообщение об ошибке при отображении даты и времени. Показывает NaN/NaN/NaN 12:NaN:NaN PM

var store = new FMP.AspNetJsonStore({
            fields: [
                      { name: 'DateOccurred'}
                     ],
 });

var dateRenderer = Ext.util.Format.dateRenderer('m/d/Y h:i:s A');

 { header: xppo.st('SDE_DATE_OCCURRED'), width: 75, sortable: true,
     dataIndex: 'DateOccurred', renderer: dateRenderer },

В магазине, если я определю поля:

[ { name: 'DateOccurred', type: 'date', dateFormat: 'm/d/Y'} ],

... отображает пустое поле.

Пожалуйста, помогите мне в этом вопросе.

Ответы [ 2 ]

6 голосов
/ 15 января 2010

Указанный dateFormat должен точно соответствовать строке даты, чтобы ее можно было проанализировать. Формат 'm / d / Y' терпит неудачу, потому что отсутствует компонент времени, а 'm' ожидает двухзначный месяц. DateFormat, который успешно анализирует вашу примерную строку даты:

'n/d/Y H:i:s A'

Вы также можете попробовать опустить dateFormat, оставляя тип поля установленным на «date». В отсутствие определенного формата ExtJS будет использовать Date.parse.

0 голосов
/ 19 сентября 2014

Я согласен с совестью, но я хотел добавить еще несколько комментариев к этому ответу, поскольку я встречал его в нескольких формах.

Стоит обратить внимание и на ваш браузер. Во время написания кода для решения этой проблемы я заметил, что мой браузер перейдет в режим совместимости и перейдет в IE 8, а затем покажет эту проблему при использовании IE 11 благодаря настройкам реестра в моем офисе. Чтобы обойти проблемы режима совместимости на своей веб-странице, попробуйте добавить следующий метатег HTML ниже на исходную страницу HTML, которая вызывает файлы приложения Ext JS.

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

Является ли столбец сетки или другой объект xtype установленным в поле даты, а как насчет модели? Модель фактически использует тип столбца даты. Взгляните на поля Models и установите поле проблемной даты type() на дату, например:

type: 'date',
...

Еще один момент, на который следует обратить внимание, - это проверка формата данных, которые вы получаете от вызова на сервере. Похоже, вы получаете прямой JSON-сериализованный объект Date. Я видел, что эти объекты также возвращались как {"Date":"2014-09-18T00:00:00" ...}, а символ T в сериализованных данных вызывал проблемы.

Если вам необходимо выполнить форматирование для такого сценария, включите escape-символы в настройку dateFormat(), которую вы используете для своей модели. Вот пример установки этого символа с экранированным символом: dateFormat: 'Y-m-d\\TH:i:s',

Наконец, мое последнее решение состоит в том, что если у вас все еще возникают проблемы с датами, и ни одно из вышеперечисленных предложений не помогло вам, попробуйте установить параметры конфигурации dateReadFormat() и dateWriteFormat(), эти параметры будут переопределять первые установка мы обсуждали dateFormat(). Я не уверен, почему, но по какой-то причине эти два отдельных параметра позволили решить мои проблемы с датами, в отличие от одного параметра конфигурации формата даты. Возможно, это связано с Писателем, но сейчас я не совсем уверен.

Код, вероятно, будет выглядеть примерно так:

...    
dateReadFormat: 'Y-m-d\\TH:i:s',
dateWriteFormat: 'Y-m-d\\TH:i:s',
...

Надеюсь, это поможет нескольким людям ...

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