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.
Je pense que, dans le contexte d’une communauté fortement localisée, vous devriez pouvoir spécifier le fuseau horaire pour le cakeday de Discourse. Changer le fuseau horaire du serveur n’est vraiment pas quelque chose que nous pouvons faire.
C’est une affaire délicate et je ne suis pas sûr de savoir comment la résoudre, même maintenant que nous permettons aux utilisateurs de spécifier des « fuseaux horaires ».
Si vous vous êtes inscrit sur un forum en Australie le 2 janvier 2019 à 8 h.
Votre anniversaire d’un an selon le « cakeday » sera le 1er janvier 2019.
Lorsque vous visiterez la page des anniversaires à 8 h le 2 janvier, vous verrez les anniversaires du 1er janvier 2019 au lieu du 2.
Je suppose que ce que nous demandons ici, c’est d’utiliser les fuseaux horaires « locaux » définis pour les utilisateurs pour prendre en compte ces éléments.
Cela signifie :
Votre anniversaire d’un an devrait être le 1er janvier 2019 car votre fuseau horaire local dans votre profil utilisateur est l’Australie.
Lorsque vous visiterez la page des anniversaires le 2, vous devriez voir le 2.
Pour l’instant, je pense soutenir la solution simple qui consiste, lors du rendu de la page des anniversaires, à regarder le fuseau horaire local de l’utilisateur connecté et à utiliser cette date au lieu de la date UTC actuelle, pour les cas où un utilisateur est connecté. Cela devrait être un changement assez simple, peut-être deux lignes de code.
Je pense que @tgxworld a déjà corrigé cela pour prendre en compte le décalage horaire via :
et
MODIF : Je suis dans le fuseau horaire UTC+5:30 mais j’ai un décalage de 6 heures, je vois donc quelques cas limites pour les utilisateurs ayant créé leur compte entre 23:30 et 00:00. Je regarde cela de plus près.