XQ Timestamp Fix - Time Zone Day Correction

XQ Timestamp Fix - Time Zone Day Correction 1.0.0

Нет прав для скачивания
Совместимость с XenForo
2.3.x
Видимый копирайт
Нет
Русификатор
Нет
Доп. требования
XenForo 2.3.13+. Протестировано на версии 2.3.13.
XQ Timestamp Fix — это простое решение давней проблемы XenForo, из-за которой при несовпадении часового пояса браузера посетителя с часовым поясом, используемым XenForo для отображения дат, может отображаться неправильное название дня недели.

О проблеме сообщалось в январе 2021 года и снова в ноябре 2022 года. Проблема по-прежнему воспроизводится в XenForo 2.3.13, спустя более пяти лет после первоначального сообщения.

Изначально XenForo формирует правильную дату и время с помощью PHP. Затем с помощью JavaScript-кода можно вычислить название дня недели, используя часовой пояс браузера, при этом сохранив формат времени, соответствующий часовому поясу гостя или участника.

В результате из двух разных локальных дат получается одна неверная временная метка.

Например, один и тот же пост может выглядеть так:
  • Участник, вошедший в систему, использует горное время: Вчера в 00:14.
  • Гость, использующий настройку тихоокеанского времени на форуме: Понедельник в 23:14.
  • Правильная временная метка для гостя: Воскресенье в 23:14.
Если просматривать его во вторник днем, то «вчера в 00:14» означает раннее утро понедельника по горному времени. По тихоокеанскому времени это поздний вечер воскресенья, а не понедельник.

Таким образом, даже разница в часовых поясах в один час может привести к ошибке в отображении названия дня недели. В этом примере из-за неверной метки гостя может показаться, что публикация была сделана на 24 часа позже, чем на самом деле, если судить по тихоокеанскому времени.

При максимальном смещении часовых поясов по разные стороны от международной линии перемены дат календарные даты могут отличаться на два дня, что приводит к расхождению в 48 часов в отображении даты и времени.

Сохраненная временная метка не изменяется. Полная дата, отображаемая во всплывающей подсказке, остается верной. Это ошибка отображения, но из-за нее может быть сложно понять время и порядок разговоров.

Кто может столкнуться с этой проблемой?
  • Гости, чей часовой пояс в браузере отличается от настроенного часового пояса для гостей.
  • Зарегистрированные участники, чей часовой пояс в браузере отличается от выбранного часового пояса в их учетной записи.
Разные часовые пояса не всегда приводят к ошибке. Проблема возникает, когда в этих часовых поясах публикация относится к разным календарным датам, а XenForo отображает название дня недели, например «воскресенье» или «понедельник».

Что делает это дополнение

XQ Timestamp Fix сохраняет правильные временные метки с названиями дней недели, созданные PHP-модулем XenForo, и не позволяет JavaScript перезаписывать их.

Оно нацелено на диапазон названий дней недели в XenForo, обычно это публикации, опубликованные от двух до шести календарных дней назад. Поддерживаются все семь названий дней недели, включая субботу и воскресенье.
  • Работает для гостей и зарегистрированных участников.
  • Использует существующие в XenForo расчеты часовых поясов и календарей.
  • Сохраняет видимый текст временной метки, всплывающую подсказку с полной датой, стиль и машиночитаемую дату.
  • Оставляет другие диапазоны временных меток без изменений, как при обычном обновлении в реальном времени в XenForo.
  • Не требует настройки.
  • Не добавляет JavaScript, не вносит изменений в шаблоны, не использует внешние зависимости, запланированные задачи или пользовательские таблицы базы данных.
  • Не вносит изменений в сохраненные временные метки или настройки часового пояса пользователя.
  • Включает хэши работоспособности файлов.
Важное ограничение

Это целенаправленный обходной путь на PHP. Защищенные метки с названиями дней недели остаются неизменными до тех пор, пока страница не будет перерисована.

Это не решает проблему с обновлением в реальном времени, возникающую в XenForo, когда вкладка остается открытой после полуночи. Если при загрузке страницы временная метка выходит за пределы защищенного диапазона, проблема может возникнуть позже. При обновлении страницы и получении нового ответа от сервера метки пересчитываются корректно.

При возврате на предыдущую страницу и переходе на следующую, а также при использовании кэшированных страниц могут сохраняться старые метки. Пользовательские отображения даты, которые не используют стандартный рендерер XenForo, не входят в сферу применения этого дополнения.

Установка
  1. Установите ZIP-архив через Admin CP → Дополнения → Установить/обновить из архива или загрузите его содержимое и установите обычным способом.
  2. Запустите проверку работоспособности файла.
  3. Обновите проблемную страницу.

Настройки не требуются. Используйте стандартные элементы управления надстройками XenForo, чтобы отключить или удалить ее.

Совместимость

Требуется XenForo 2.3.13 или более поздняя версия. Версия 1.0.0 была протестирована на XenForo 2.3.13, включая обширную симуляцию часовых поясов, переход на летнее время, переведенные метки, а также оригинальное и минифицированное обновление даты в JavaScript.

Проверьте совместимость после обновления XenForo. Если XenForo устранит основную проблему, этот обходной путь можно будет отключить или удалить.

Похожие ресурсы

Attachment browser fix XenBaza
Показывает полноразмерные миниатюры в браузере вложений.
Скачивания
0
Обновлено
Auto close by prefix XenBaza
Автоматическое закрытие потоков на основе префикса.
Скачивания
0
Обновлено
Auto delete by prefix XenBaza
Автоматическое удаление потоков по префиксу.
Скачивания
0
Обновлено
Auto move by prefix XenBaza
Автоматическое перемещение потоков по префиксу.
Скачивания
0
Обновлено
Auto prefix by last post XenBaza
Автоматическая смена префикса темы в зависимости от автора последнего поста.
Скачивания
0
Обновлено
Назад
Сверху Снизу