проблемы с датой - PullRequest
       4

проблемы с датой

2 голосов
/ 23 декабря 2011

У нас есть несколько вычисляемых полей в списке sharepoint 2010.

Расчеты: =DATE(YEAR(Start),MONTH(Start),1), который вернет начало месяца.

и =DATE(YEAR(Start),MONTH(Start)+1,1)-1, которые вернут конец месяца.

Если у нас есть региональные настройки в sharepoint 2010 для пользователя, настроенного на «следование веб-настройкам», он работает как чудо и возвращает 12/1/2011 и 12/31/2011.

Однако, если кто-то хочет персонализировать свои календари для автоматической настройки на свою зону, они могут нажать My Settings, а затем My regional settings и соответствующим образом изменить часовой пояс.

Но когда это произойдет, приведенные выше вычисления даты вычитают день из результатов и возвращают 11/30/2011 для начала и 12/30/2011 для конца.

Есть ли способ обойти это, кроме принуждения всех использовать один и тот же часовой пояс?

Ответы [ 2 ]

0 голосов
/ 24 декабря 2011

Похоже, что ответ заключается в том, как вычисляются дата и время в списке SharePoint.При использовании =DATE любого типа вычисления вы фактически устанавливаете дату, таким образом, устанавливая дату на 12/1/2011, вы фактически устанавливаете ее также 12/1/2011 12:00:00 AM.И когда региональные времена корректируются на это, время заставляет их вернуться к предыдущему дню.

Это не преднамеренная вещь.И то, что можно преодолеть, добавив некоторое время к фактическому результату:

=DATE(YEAR(Start + .5),MONTH(Start + .5),1)         
=DATE(YEAR(Start - .5),MONTH(Start - .5)+1,1)-1

Как мы можем видеть из приведенных выше расчетов, .5 фактически добавляет несколько часов к первоначальным вычислениям, что дает намправильные настройки, если пользователи хотят установить для своих часовых поясов что-то более нестандартное.

Однако это работает не для всех часовых поясов, поскольку международные часовые пояса, вероятно, будут пересекать разницу во времени с .5.выше, и отметьте его днем ​​в будущем или другим днем ​​позади.

Но для нас проблема решена, и наши пользователи могут еще раз установить PST, EST, CST, MST и т. Д. В своих региональных настройках.

0 голосов
/ 23 декабря 2011

Разве вы не можете просто проверить часовой пояс и откорректировать расчет на основе этого кода в вашем коде?

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