Plugin de Calendário: eventos de dia inteiro terminam cedo demais e são renderizados incorretamente

TL;DR: Ao usar um tópico para o caso de uso de “calendário de férias da equipe”, com pessoas registrando respostas em vários fusos horários, o calendário exibe os itens terminando muito cedo.

Reproduzir:

  • Tenha o Plugin de Calendário instalado.
  • Configure um tópico para que uma equipe o use como calendário de “ausência” ou “férias”. Incorpore o calendário na primeira postagem do tópico, conforme o exemplo.
  • Comece a pedir que os membros da equipe adicionem suas férias como respostas ao tópico, por exemplo:
    [date=2020-02-05 timezone="America/New_York"] → [date=2020-02-07 timezone="America/New_York"] Ótimas Férias

Comportamento esperado:

  • Um usuário com o fuso horário definido como America/Los_Angeles verá o exemplo acima na grade do calendário ocupando o dia inteiro de 5, 6 e 7 de fevereiro, exatamente como o autor do evento.

Comportamento atual:

  • Um usuário com o fuso horário definido como America/Los_Angeles verá o exemplo acima na grade do calendário ocupando o dia inteiro de 4, 5 e 6 de fevereiro, enquanto a pessoa que criou o evento vê a data correta de 5, 6 e 7 de fevereiro.

Teorias:

Parece que, quando nenhum horário é fornecido na entrada do evento, há um horário de início assumido de 00:00 e um horário de término assumido de 00:00 no fuso horário fornecido nessa entrada. Portanto, no exemplo da pessoa no fuso horário de Los Angeles, o colega em Nova York começa suas férias de 5 a 7 de fevereiro às 21:00 (horário de Los Angeles) em 4 de fevereiro, e essas férias terminam em 6 de fevereiro às 21:00 (horário de Los Angeles) (7 de fevereiro às 00:00 em Nova York).

No mínimo, parece que alguém implicaria um horário de término de 23:59:59 na data fornecida, se nenhum horário for especificado, e não 00:00:00.

Também me parece que, para eventos sem horários específicos fornecidos, eles devem ser renderizados independentemente do fuso horário, para que sempre correspondam ao que o autor declarou, independentemente de quem está visualizando.

1 curtida

Olá Michael,

Recentemente fiz uma alteração no plugin de calendário que está causando isso. Duas configurações do site foram adicionadas para ajudar o plugin de calendário a funcionar como um “calendário de férias da equipe” viável.

O problema com eventos de dia inteiro é exatamente o que você descreveu: os dias começam em horários diferentes para diferentes fusos horários. Para lidar com isso, você pode definir essas duas configurações (acho que 06:00 e 18:00 funcionam bem), de modo que qualquer data sem hora especificada comece às 6:00 e termine às 18:00.

Por favor, teste isso e me diga como funciona para você.

6 curtidas

Legal. Como isso é uma configuração do site, a que fuso horário essas entradas se referem?

1 curtida

O fuso horário continua sendo o fuso horário do usuário que fez a postagem.

4 curtidas

Parece ótimo agora. Obrigado!

1 curtida