게시물 데이터를 상대 데이터에서 절대 데이터로 변경하는 방법

팀원 여러분,
게시물 데이터 형식을 YYYY-MM-DD HH:mm으로 수정하려고 합니다.
프론트엔드 JavaScript에서 수정하는 것은 합리적이지 않은 것 같습니다.

  1. 이 시간을 테마를 통해 오버라이드할 수 있나요?
  2. 이메일에서도 이 값을 어떻게 수정할 수 있나요?(현재는 날짜만 표시됩니다)

모든 날짜 형식과 기타 텍스트를 커스터마이징할 수 있습니다. 다음 가이드를 확인해 보세요:

답장 주셔서 감사합니다, David.
해당 사용자 설정을 확인했지만, 여기서는 찾을 수 없는 것 같습니다.
모든 게시물의 시간 형식을 절대 시간으로 표시하고 싶습니다. 예를 들어, 현재 제 주제 게시물의 '3h’가 '12 May 17:33’으로 표시되길 원합니다.


몇 분 만에 작성된 게시물이라도 모든 게시물의 데이터를 YYYY-MM-DD HH:mm 형식으로 변경하는 가장 좋은 방법이 무엇인지 아시는가요?

아, 그렇군요!

그렇다면 “상대 날짜 기간” 사이트 설정을 변경해 보실 수 있습니다.

relative_date_duration: 게시 후 며칠 동안 게시 날짜를 절대 날짜(2월 20일) 대신 상대 날짜(7일 전)로 표시할지 결정합니다.

따라서 귀하의 경우 이 값을 0으로 설정하시면 될 것 같습니다.

네,
0으로 설정해 두었는데도 여전히 적용이 되지 않습니다. 시간이 좀 걸리는 건가요, 아니면 도메인 변경 후에 하듯이 rake posts:rebake를 실행해야 하나요?

페이지를 새로고침하면 적용되어야 합니다. 차이가 있나요? 현재 게시글의 날짜는 어떻게 표시되고 있나요?

전체 새로고침을 해도 여전히 '36’이 표시됩니다.

그리고 설정값은 0입니다.

음, 23.5시간 이전의 날짜는 해당 설정과 관계없이 항상 상대 시간으로 표시되는 것 같습니다:

따라서 설정 변경은 1일 이상 지난 게시물에 적용되었을 것입니다. 하지만 1일 미만인 항목의 동작 방식을 변경할 수 있는 방법이 현재는 없는 것으로 보입니다.

이 파일을 보고 있습니다.
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>

이것이 올바른 템플릿인가요? 테마 컴포넌트로 변경할 수 있을까요?

아니요, unfortunately .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