That’s one way to look at it I guess. But I’m assuming the users are queried on page load, so there’s really only “one” set at a time.
Here’s a better example. The post you just made shows up for me as “June 8, 2017 12:45 AM”. If I was to fly across the country to California, I’d expect that post to show as “June 7, 2017 9:45 PM”.
…and I just earned the “anniversary” badge this morning. This does feel like a bug to me.
Could it be mitigated by simply changing the timezone of the server to something more applicable for my community? We’re (mainly) in Australia, so processing everything as, say, GMT+8 or GMT+10 would make this all feel less odd.
Since the server doesn’t know a user’s time zone, maybe the easiest fix for this would be to award the badge one day later? For some, that will mean they get it late, but that will probably not be experienced as a bug as much as an early award is.
Another option might be to simply specify in the UI that these times are based on the server’s time zone.
Acho que, no contexto de uma comunidade fortemente localizada, você deveria poder especificar o fuso horário para o aniversário de cadastro (cakeday) no Discourse. Alterar o fuso horário do servidor não é algo que possamos fazer.
Isso é uma questão delicada e não tenho certeza de como resolvê-la, mesmo agora que permitimos que os usuários especifiquem “fusos horários”.
Se você se inscreveu em um fórum na Austrália no 2 de janeiro de 2019 às 8h.
Seu aniversário de 1 ano, segundo o “cakeday”, será em 1 de janeiro de 2020.
Quando você visitar a página de aniversários às 8h do dia 2 de janeiro, verá aniversários de 1 de janeiro de 2020 em vez do dia 2.
Acho que o que estamos pedindo aqui é usar fusos horários “locais” definidos nos perfis dos usuários para levar isso em conta.
Ou seja:
Seu aniversário de 1 ano deve ser 2 de janeiro de 2020, já que seu fuso horário local no perfil de usuário é o da Austrália.
Quando você visitar a página de aniversários no dia 2, deverá ver o dia 2.
Por enquanto, acho que apoio a solução simples: ao renderizar a página de aniversários, verificar o fuso horário local do usuário atual e usar essa data em vez da data UTC atual, para casos em que o usuário está logado. Deve ser uma mudança bem simples, talvez apenas duas linhas de código.
Acredito que @tgxworld já corrigiu isso para considerar o fuso horário por meio de:
e
EDIT: Estou no fuso horário UTC+5:30, mas tenho um deslocamento de 6 horas, então estou vendo alguns casos extremos para usuários que criaram contas entre 23:30 e 00:00. Investigando.