Я протестировал Firefox и Chrome/Chromium на Windows, Linux и Android. В каждом браузере наблюдается одинаковое поведение. Кстати, мои часы всегда настроены на часовой пояс Europe/Berlin.
У меня точно такая же проблема! Без кавычек всё работает как по маслу. Но редактор Discourse всегда создаёт “Europe/Berlin” вместо Europe/Berlin — и в предпросмотре тогда отображается неверное время. Можно ли это исправить?
У меня наблюдается такое же поведение, как указано выше. Как только я убираю кавычки, всё работает нормально. Но при их использовании система, похоже, применяет UTC с учётом часового пояса, в котором работает мой клиент.
Кстати, то же самое происходит здесь, когда я указываю в поле часового пояса бессмысленное значение: [date=2019-08-20 time=20:00:00 timezone="nonsense"]
или [date=2019-08-20 time=20:00:00 timezone=nonsense] 2019-08-20T20:00:00Z
У меня точно такая же проблема. Похоже, это так или иначе связано с установками на немецком языке.
Кстати, интересный факт: я попытался сбросить настройки, запустив wizard по адресу domain.de/wizard. Там я изменил локаль на English US и прошел весь мастер настройки. При настройке на английский язык вставка времени работает корректно: например, я ввожу 23:15 по немецкому времени, а отображается «Завтра, 23:15 (Europe/Berlin)» — всё верно.
Однако, когда я через мастер возвращаю форум на «Deutsch» и вставляю новую запись с временем, снова появляется эффект сдвига на +1 час. (Время, вставленное при английской настройке, всё ещё отображается правильно.)
Похоже, дело не в времени сервера. Что-то идёт не так при переходе между локалью Europe и UTC.
Готов провести дополнительные тесты или предоставить больше информации, если потребуется.
Небольшое дополнение: я заметил небольшую разницу между моей установкой и этой официальной.
Мы отключили опцию «Разрешить выбор локализации пользователем». Таким образом, пользователи не могут самостоятельно изменить язык. Не знаю, будет ли это полезно.
Как насчёт остальных, кто столкнулся с той же проблемой, а именно @Daniel_Tesla, @lorddevil, @zogstrip, @hewo7: могут ли ваши пользователи изменять настройки локализации интерфейса? Или, на немецком, в разделе Настройки › Общие настройки: Разрешить выбор локализации пользователем: «Разрешить пользователям выбирать собственный язык интерфейса».
Разрешить выбор локализации пользователем: активно
Разрешить выбор локализации пользователем: неактивно
Я с радостью окажу дополнительную помощь в тестировании и отладке, если это потребуется. Если кто-то из команды захочет более внимательно изучить эту тему.
Более подробный контекст: похоже, что когда экземпляр Discourse установлен на немецкую локаль, мы заменяем кавычки " на немецкие кавычки „“, что нарушало работу нашего парсера.
@gerhard Я пока внес исправление непосредственно в local-dates. Как вы считаете, стоит ли попытаться исправить это выше по цепочке?
В функции parseBBCodeTag перед отправкой совпавшей строки?