Мой форум показывает возраст сообщения на основе часового пояса клиента, из-за чего время указывается неверно. Например, если сообщение было опубликовано в 17:00, а я проверяю его в 21:10, но на часах моего устройства 17:10, форум пишет, что сообщение было опубликовано всего 10 минут назад. Как мне это исправить?
Один из часов должен быть неверен (или иметь неверный часовой пояс). Если часы вашего клиента верны, значит, часы сервера неверны. Попробуйте войти на сервер через SSH и выполнить команду date.
В этом и суть. Если часы клиента настроены неверно, на форуме будут отображаться некорректные временные метки. Так быть не должно. А что насчет читателя, который заходит на форум из другого часового пояса? Получит ли он тоже все время с ошибкой?
Это решаемо?..
Я действительно могу воспроизвести это, если поиграть с системными часами. Например, для сообщения @david выше, если я изменю время на 11:05 (я в Австралии), я получу «7 мин назад». Если я изменю часовой пояс, не меняя время на часах, поведение остаётся корректным: например, всё ещё отображается «3 ч назад», просто при наведении показываются другие времена из-за другого часового пояса.
Не совсем понятно, что именно вы хотите исправить? Сообщение «X мин назад» всегда будет основываться на клиенте, так как оно относительное и зависит от системных часов и настроек часового пояса клиента. Неверные системные часы у клиента маловероятны, поскольку в большинстве случаев время и часовой пояс автоматически синхронизируются через интернет.