TL;DR: 「チームの休暇カレンダー」としてトピックを使用し、複数のタイムゾーンで返信が記録される場合、カレンダーの表示期間が短く表示されてしまいます。
再現手順:
- Calendar プラグインがインストールされていること。
- チームが「不在休暇」または「休暇」カレンダーとして使用するトピックを設定する。例に従い、カレンダーをトピックの最初の投稿に埋め込む。
- チームメンバーが返信として休暇を追加し始める(例)。
[date=2020-02-05 timezone="America/New_York"] → [date=2020-02-07 timezone="America/New_York"] Awesome Vacation
期待される動作:
- タイムゾーンを
America/Los_Angelesに設定したユーザーは、上記の例をカレンダーグリッド上で 2 月 5 日、6 日、7 日の終日占有として表示し、イベント作成者と同じ表示になること。
実際の動作:
- タイムゾーンを
America/Los_Angelesに設定したユーザーは、上記の例をカレンダーグリッド上で 2 月 4 日、5 日、6 日の終日占有として表示するが、イベント作成者は正しい 2 月 5 日、6 日、7 日として表示される。
推測される原因:
イベントエントリに時刻が指定されていない場合、指定されたタイムゾーンにおいて開始時刻が 00:00、かつ終了時刻も 00:00 と仮定されているようです。つまり、ロサンゼルスにいるユーザーの例では、ニューヨークの同僚が 2 月 5 日〜7 日の休暇をロサンゼルス時間では 2 月 4 日 21:00 に開始し、ロサンゼルス時間では 2 月 6 日 21:00(ニューヨーク時間では 2 月 7 日 00:00)に終了することになります。
少なくとも、時刻が指定されていない場合は、指定された日付の終了時刻を 00:00:00 ではなく、23:59:59 とみなすべきではないでしょうか。
また、特定の時刻が指定されていないイベントについては、タイムゾーンに関係なくレンダリングされるべきであり、閲覧者に関わらず常に作成者が指定した内容と一致する必要があると思います。
