Плагин календаря: события на весь день заканчиваются слишком рано и отображаются некорректно

TL;DR: При использовании темы для сценария «календарь отпусков команды», когда люди оставляют ответы в разных часовых поясах, календарь отображает события как завершающиеся раньше времени.

Воспроизведение:

  • Установите плагин «Календарь».
  • Создайте тему, которую команда будет использовать как календарь «отсутствия на работе» или «отпусков». Вставьте календарь в первый пост темы, как показано в примере.
  • Начните добавлять团队成员ы свои отпуска в виде ответов на тему, например:
    [date=2020-02-05 timezone="America/New_York"] → [date=2020-02-07 timezone="America/New_York"] Отличный отпуск

Ожидаемое поведение:

  • Пользователь с часовой зоной America/Los_Angeles увидит приведённый выше пример в сетке календаря как событие, занимающее весь день 5, 6 и 7 февраля, точно так же, как это видит автор события.

Фактическое поведение:

  • Пользователь с часовой зоной America/Los_Angeles увидит приведённый выше пример в сетке календаря как событие, занимающее весь день 4, 5 и 6 февраля, в то время как человек, создавший событие, видит правильные даты: 5, 6 и 7 февраля.

Гипотезы:

Кажется, что когда время не указано в записи события, предполагается время начала 00:00 и время окончания 00:00 в часовом поясе, указанном в этой записи. Таким образом, в примере с человеком в часовом поясе Лос-Анджелеса коллега из Нью-Йорка начинает свой отпуск с 5 по 7 февраля в 21:00 (время Лос-Анджелеса) 4 февраля, и этот отпуск заканчивается 6 февраля в 21:00 по времени Лос-Анджелеса (7 февраля в 00:00 по времени Нью-Йорка).

По крайней мере, кажется логичным, что если время не указано, подразумевается время окончания 23:59:59 в указанную дату, а не 00:00:00.

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

1 лайк

Привет, Майкл,

Я недавно внес изменения в плагин календаря, из-за которых возникает эта проблема. Было добавлено два параметра сайта, которые помогают плагину календаря работать в качестве эффективного «календаря командных праздников».

Проблема с событиями на весь день именно та, которую вы описали: дни начинаются в разное время для разных часовых поясов. Чтобы решить это, вы можете настроить эти два параметра (я считаю, что 06:00 и 18:00 работают хорошо), чтобы любая дата без указанного времени начиналась в 6:00 и заканчивалась в 18:00.

Пожалуйста, попробуйте это и дайте знать, как это сработает для вас.

6 лайков

Круто. Поскольку это параметр сайта, к какому часовому поясу относятся эти записи?

1 лайк

Временная зона по-прежнему соответствует временной зоне пользователя, создавшего запись.

4 лайка

Теперь выглядит отлично. Спасибо!

1 лайк