jqgrid конвертирует дату на основе часового пояса.Как это ограничить - PullRequest
0 голосов
/ 05 июня 2018

У меня есть Jqgrid, для которого я связываю данные из базы данных, и у меня нет проблем с загрузкой.Однако с полем даты я вижу проблему, если приложение открыто в другом часовом поясе относительно сервера.

Если моя дата в базе данных равна '2018-03-15', в некоторых часовых поясах, если данные заполненыкак '2018-03-14' с разницей в один день, что, как я вижу, происходит из-за пользователя в разных часовых поясах.

У нас есть какие-либо опции в Jqgrid, чтобы ограничить это преобразование.Я хочу показать дату, которая находится в базе данных для конечного пользователя.

Вот colmodel этого поля:

{name: 'OrderDate', index: 'OrderDate', formatter: 'date', formatoptions: {newformat: 'y/m/d'}}

1 Ответ

0 голосов
/ 06 июня 2018

Поскольку ваш исходный формат даты - 'y / m / d', вам нужно будет установить это в форматах, так как источником по умолчанию (srcformat) является 'Ymd' (это установлено в языковом файле)

{name: 'OrderDate', index: 'OrderDate', formatter: 'date', formatoptions: {srcformat: 'y/m/d', newformat: 'y/m/d'}}

Также, если ваши исходные данные не содержат никакой информации, содержащей информацию для часового пояса, jqGrid не касается данных.Более того, у нас есть опция с именем userLocalTime (см. Используемый языковой файл), которая по умолчанию имеет значение false.

Я не уверен, но ваша проблема в этом случае, возможно, в коде сервера.Проверьте, не содержит ли код вашего сервера какой-либо код, относящийся к настройкам часового пояса.

Настоящий тест состоит в том, чтобы увидеть исходные данные, поступающие с сервера в консоли.

РЕДАКТИРОВАТЬ: Ваш исходный формат даты называется Microsoft Json date, который приходитот Microsoft json сериализатор даты

В этом случае jqGrid автоматически определяет этот тип даты, и если эта дата содержит информацию для смещения часового пояса.Ваша дата, установленная вами, не содержит информации для часового пояса - поэтому jqGrid не добавляет смещение часового пояса - она ​​всегда преобразует эту строку в 2016/3/20

Другая возможная причина заключается в том, что установлен userLocalTimeв true, но вы не устанавливаете это свойство в formatoptions.

ИМХО проблема в коде вашего сервера, который каким-то образом добавляет смещение к исходной дате.Проверьте это

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