ポストデータを相対から絶対に変更する方法

こんにちはチーム、
投稿データの形式を YYYY-MM-DD HH:mm に変更したいです。
フロントエンドの JavaScript で変更するのは妥当ではないようです。

  1. この時間をオーバーライドするためにテーマを使用できますか?
  2. メールでもこれを変更するにはどうすればよいですか(現在はデータのみ表示されています)。
「いいね!」 1

すべての表示形式は、他のテキストと共にカスタマイズできます。このガイドをご覧ください。

「いいね!」 5

Davidさん、返信ありがとうございます。
このカスタム設定を見ましたが、ここには見当たらないようです。
すべての投稿の時刻形式を絶対時刻で表示したいです。たとえば、現在の私のトピック投稿「3h」は「12 May 17:33」と表示されます。

すべての投稿データを YYYY-MM-DD HH:mm 形式に変更する最善の方法をご存知でしたら教えてください。数分前に投稿されたものでも同様です。

「いいね!」 1

なるほど!

その場合は、「相対日付期間」サイト設定を変更してみてください。

relative_date_duration: 投稿日から何日後まで、投稿日時を絶対値(20 Feb)ではなく相対値(7d)で表示するか。

したがって、あなたのケースでは、0に設定することになると思います。

「いいね!」 2

はい、
それを0に設定しましたが、今はまだ効果がありません。少し時間がかかるのですか、それともドメインを変更した後に行うようにrake posts:rebakeを実行する必要がありますか?

効果を得るにはページのリフレッシュだけで済むはずです。何か変化はありましたか?今の投稿日時はどうなっていますか?

「いいね!」 2

ページを完全にリフレッシュしても、「36」と表示されます。

そして、設定は0です。

「いいね!」 1

設定に関係なく、23.5時間未満の日付は常に相対表示されるようです。

したがって、設定の変更は1日以上前の投稿に適用されます。しかし、1日未満の動作を変更する方法は現在ないようです。

「いいね!」 2

このファイルを見ました
discourse-main/app/assets/javascripts/discourse/app/components/post/meta-data/date.gjs

    <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 テンプレートを上書きすることはできません(上書きの安定性を向上させ奨励することを目的としています)

「いいね!」 1

よく戻ってきましたね。@aksoforever

これについてどのように進めていますか?あなたのユースケースについてもう少し教えてください。

なぜあなたはメンバーに対してこれほど長く絶対的な日付を課したいのですか? 「○○前」の日付は目に優しく、投稿の古さを知るのに必要な情報を伝えてくれます。マウスを重ねると明示的なタイムスタンプが表示されます。

「いいね!」 1

ご注意いただきありがとうございます @tobiaseigen

はい、現在のDiscourseの表示は非常にモダンで親しみやすく、大多数の人にとってより適しています

頻繁に使用する少数の人にとっては、絶対時間を使用する方がより速くて直接的に感じられるでしょう。

メールの時間に関しては、現在は月と日だけを表示しています。
メールで情報を確認するのはユーザーフレンドリーではありません。特に数年前の情報を見返すときに、年が表示されていません。

「いいね!」 1

現在、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