Новые записи дат в теме отображаются в соответствующих уведомлениях по электронной почте следующим образом:
Следующая встреча Freifunk в Makers Inn (еще не подтверждена)
2024-04-18T16:00:00Z UTC→2024-04-18T20:00:00Z UTC
Для канала публикации по электронной почте это должно быть переформатировано в читаемую человеком дату с учетом текущего часового пояса (в данном случае: CET) экземпляра Discourse.
Должно быть в часовом поясе события и/или создателя события
Должно быть оформлено более красиво, например, вместо «2024-04-18T16:00:00Z UTC→2024-04-18T20:00:00Z UTC» должно читаться как «UTC 2024-04-18, 16:00–20:00»
Я не знаю код здесь, но это возможный недостаток, я согласен.
С другой стороны, мы видим правильную дату в визуальном календаре сверху… Тот, кто знает код, должен прокомментировать это…
Код я не проверял, но предполагаю, что в вебе дата загружается из базы данных на клиент и парсится на стороне клиента с помощью JS (что невозможно, когда вы рендерите контент на стороне клиента в почтовом клиенте).
Переход на UTC стал улучшением по сравнению с отсутствием указания часового пояса или чрезмерно подробным отображением, где для каждой даты могли указываться три разных пояса. Однако последующая доработка для использования часового пояса сайта или пользователя так и не была реализована.
Даже если разница составляет несколько часовых поясов, многие люди, вероятно, смогут точнее оценить время, отталкиваясь от конкретного пояса, а не от UTC.
Текущее использование UTC в письмах действительно ужасно для «обычного пользователя», особенно если вы находитесь на противоположной стороне света (например, в Новой Зеландии).
Многие форумы на Discourse привязаны к одному часовому поясу; для них было бы великолепно иметь возможность указывать часовой пояс по умолчанию, отображаемый в письмах.
Для форумов, охватывающих несколько часовых поясов, всё сложнее — это подтверждается тем, что у нас до сих пор есть «временное» решение возрастом пять лет. Я бы очень хотел, чтобы кто-то значительно умнее (или хотя бы более преданный делу), чем я, разобрался с этим.
Абсолютно согласен на 100%. У нас есть форум, расположенный в Австралии, где закрытые темы используются как фактические рассылки. Почти все участники находятся в Австралии и ожидают, что время встреч будет указано в их часовом поясе. Время UTC в письмах сбивает с толку многих пользователей.
Неужели мы не можем хотя бы задать используемый часовой пояс и позволить каждому экземпляру выбрать, переопределять его или нет?
В приведённом примере нет указания часового пояса. Я считаю, что это было бы плохо, если бы именно такой формат использовался бы буквально. Я настоятельно рекомендую добавить соответствующее трёх- или четырёхбуквенное обозначение часового пояса или полное описание с указанием страны/города. В текущем тексте указано «UTC», что является однозначным указанием на то, что имеется в виду — новое поведение должно быть хотя бы таким же понятным.
Даже в рамках «узколокального обсуждения» вполне могут быть пользователи из соседних часовых поясов, возможны переходы на летнее время, а также пользователи, находящиеся в поездках и получающие доступ издалека.
Это не та гора, за которую я готов умереть, но сейчас даты очень трудно понять, поэтому я рад, что у Нью-Йорка, Лондона и Парижа будет что-то немного менее запутанное… но очень сложно придумать формат, который подошел бы всем.
Однако мы можем оставить текущее состояние по умолчанию.
Что произойдет, если я изменю discourse_local_dates_email_timezone на “Europe/Paris”, но не обновлю формат на “llll Europe/Paris”? Приведет ли это к тому, что время будет конвертировано в парижское, но после него всё равно будет отображаться “UTC”?
Мне это кажется подверженным ошибкам. Возможно ли автоматически отображать выбранный часовой пояс, вместо того чтобы ожидать, что администратор вручную обновит формат? Сработает ли использование "llll z" в качестве значения по умолчанию для discourse_local_dates_email_format?