Дата форматирования JQGrid возвращает неверную дату - PullRequest
2 голосов
/ 27 октября 2011

Я использую JQGrid для отображения моих данных (сервер возвращает xml). Данные вроде бы в порядке:

<aux>
   <sessao>181092</sessao>
   <codFuncionario>13574</codFuncionario>
   <dataMarcacao class="sql-date">2011-10-15</dataMarcacao>
   <sequencia>1</sequencia>
   <seqHe/>
   <codPagamento/>
   <seqOcorrencia>0</seqOcorrencia>
   <tipoOcorrencia/>
  <diaSemana>SAB</diaSemana>
</aux>
<aux>
  <sessao>181092</sessao>
  <codFuncionario>13574</codFuncionario>
  <dataMarcacao class="sql-date">2011-10-16</dataMarcacao>
  <sequencia>1</sequencia>
  <seqHe/>
  <codPagamento/>
  <seqOcorrencia>0</seqOcorrencia>
  <tipoOcorrencia/>
  <diaSemana>DOM</diaSemana>
  <inconsistencias>FALTA DIA</inconsistencias>
</aux>

В начале сетки я настраиваю формат:

colModel:[ {name: 'dataMarcacao',
            index: 'dataMarcacao',
            width: 60,
            formatter: 'date',
            formatoptions: {newformat: 'd/m/Y', datefmt: 'Y-m-d'}},

Что я не понимаю, так это то, что сетка показывает 15/10/2011 дважды, а не 16/10/2011.

Как я могу отладить это? Может быть, ошибка JQGrid?

Я тоже пытаюсь:

colModel:[ {name: 'dataMarcacao',
            index: 'dataMarcacao',
            width: 60,
            formatter: 'date',
            formatoptions: {newformat: 'Y-m-d', datefmt: 'Y-m-d'}},

и это дает тот же неверный результат.

Ответы [ 2 ]

2 голосов
/ 12 января 2012

Серхио Михельс ответил на этот вопрос в своем собственном вопросе, я убрал его ниже:

Это похоже на ошибку в PDT.Firebug показал временные метки:

  • Date {Sat Oct 15 2011 00:00:00 GMT-0300 (Hora oficial do Brasil)}

  • Date {Sat Oct 15 2011 23:00:00 GMT-0300 (Hora oficial do Brasil)} - это должно быть 16 октября!

  • Date {Mon Oct 17 2011 00:00:00 GMT-0200}

Я обнаружил, что проблема связана с SO и объектом JavaScript Date.В Windows, когда вы включаете опцию автоматического обновления вашего часового времени, объект `Date возвращает вашу дату минус один час в летнее время.

Чтобы исправить это, я отредактировал jquery.jqGrid.src.js в строке 4667:

j = timestamp.getUTCDate()

вместо j = timestamp.getDate().

0 голосов
/ 28 мая 2015

В grid.locale js измените userLocalTime на true. Это даст местный часовой пояс

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