Calendar Plugin の終日イベントが早終了し、正しく表示されない

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 とみなすべきではないでしょうか。

また、特定の時刻が指定されていないイベントについては、タイムゾーンに関係なくレンダリングされるべきであり、閲覧者に関わらず常に作成者が指定した内容と一致する必要があると思います。

「いいね!」 1

こんにちは、マイケルさん。

この問題を引き起こしている原因は、私がカレンダープラグインに行った変更です。カレンダープラグインを実用的な「チームの休暇カレンダー」として機能させるために、2 つのサイト設定が追加されました。

終日イベントの問題は、ご指摘の通りです。タイムゾーンによって日の始まりが異なります。これに対処するために、これらの 2 つの設定を変更してください(06:00 と 18:00 が適切だと考えられます)。これにより、時刻が指定されていない日付は、6:00 に始まり、18:00 に終了するようになります。

お試しください。結果をご報告ください。

「いいね!」 6

素晴らしいですね。これはサイト設定なので、これらのエントリはどのタイムゾーンを基準にしていますか?

「いいね!」 1

タイムゾーンは引き続き投稿ユーザーのタイムゾーンです。

「いいね!」 4

とても素敵になりました。ありがとうございます!

「いいね!」 1