Как изменить данные поста с относительных на абсолютные

Привет, команда,
я хочу изменить формат данных поста на YYYY-MM-DD HH:mm.
Изменение этого в JavaScript на стороне клиента кажется нецелесообразным.

  1. Могу ли я использовать тему для переопределения этого времени?
  2. Как я могу изменить это также в письме (сейчас там отображаются только данные)?

Все форматы дат доступны для настройки вместе с другим текстом. Ознакомьтесь с этим руководством:

Спасибо за ваш ответ, Дэвид.
Я видел эту настройку, но, похоже, не могу найти её здесь.
Я хочу, чтобы формат времени для всех сообщений отображался как абсолютное время. Например, текущее сообщение в моей теме «3ч» должно отображаться как «12 мая 17:33».

Подскажите, пожалуйста, какой лучший способ изменить формат отображения времени для всех сообщений на YYYY-MM-DD HH:mm, даже если сообщение было опубликовано несколько минут назад?

Ах, я понял!

В таком случае, вы можете попробовать изменить настройку сайта «relative_date_duration».

relative_date_duration: Количество дней после публикации, в течение которых дата поста будет отображаться относительно (7д), а не абсолютно (20 фев).

Поэтому, думаю, в вашем случае вам нужно установить значение 0.

Да,
я установил значение в 0, но это всё ещё не применяется. Нужно ли подождать некоторое время или мне нужно выполнить rake posts:rebake, как мы делаем после смены домена?

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

Я обновил страницу полностью, но всё равно отображается «36»

При этом в настройках указано 0

Хм, похоже, что даты, которые были менее 23,5 часов назад, всегда отображаются в относительном формате, независимо от этой настройки:

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

Я вижу этот файл
discourse-main/app/assets/javascripts/discourse/app/components/post/meta-data/date.gjs

<template>
    <div class="post-info post-date">
      <a
        class={{concatClass
          "post-date"
          (if (and @post.wiki @post.last_wiki_edit) "last-wiki-edit")
        }}
        href={{@post.shareUrl}}
        title={{i18n "post.sr_date"}}
        {{on "click" this.showShareModal}}
      >
        <RelativeDate @date={{this.date}} />
      </a>
    </div>
  </template>

Это правильный шаблон? Могу ли я изменить его с помощью компонента темы?

К сожалению, переопределить шаблоны .gjs нельзя (это сделано намеренно для повышения стабильности переопределений и поощрения её)

С возвращением, @aksoforever!

Как у вас продвигается дело? Можете рассказать подробнее о вашем сценарии использования?

Зачем вы хотите устанавливать такие длительные абсолютные даты для участников? Даты в формате «время назад» выглядят гораздо приятнее и дают необходимую информацию о возрасте публикации. При наведении курсора отображается точная временная метка.

Спасибо за ваше внимание, @tobiaseigen

Да, сейчас интерфейс Discourse выглядит очень современно и дружелюбно, что подходит большинству пользователей.

Только для небольшого числа активных пользователей отображение абсолютного времени кажется более быстрым и прямым.

Что касается времени в письмах, теперь там указывается только месяц и день.
Использование электронной почты для просмотра информации не совсем удобно: год не отображается, особенно при просмотре сообщений за много лет назад.

В настоящее время я использую урезанную версию Discourse и переписываю код фронтенда с использованием компонентов.

В плагине используется код ниже. Можно ли изменить short_date из компонента темы?

after_initialize do
  if SiteSetting.custom_email_date_format_enabled
    module ::EmailHelper
      def short_date(datetime)
        china_time = datetime.in_time_zone("Asia/Shanghai")
        china_time.strftime("%Y-%m-%d %H:%M")
      end
    end
  end
end