Como alterar os dados da postagem de dados relativos para absolutos

Olá equipe,
quero modificar o formato dos dados da postagem para AAAA-MM-DD HH:mm
Modificar no JavaScript do frontend não parece razoável

  1. Posso usar um tema para substituir este horário?
  2. como posso modificar isso no e-mail também (agora ele só exibe dados)
1 curtida

Todos os formatos de data estão disponíveis para personalização, juntamente com outros textos. Confira este guia:

5 curtidas

obrigado pela sua resposta, David
Eu vi essa configuração personalizada, mas parece que não a encontro aqui.
Quero exibir o formato de hora de todas as postagens como hora absoluta. Por exemplo, a postagem do meu tópico atual ‘3h’ é exibida como ‘12 de maio 17:33’


você sabe qual é a melhor maneira para eu alterar todos os dados de postagem para o formato YYYY-MM-DD HH:mm, mesmo que sejam postados em alguns minutos

1 curtida

Ah, entendi!

Nesse caso, você poderia tentar alterar a configuração do site “relative date duration”.

relative_date_duration: Número de dias após a postagem em que as datas das postagens serão mostradas como relativas (7d) em vez de absolutas (20 de fev).

Então, acho que no seu caso, você definiria como 0.

2 curtidas

sim,
Eu configurei para 0, mas ainda não tem efeito agora. Será que leva algum tempo ou preciso usar rake posts:rebake como fazemos após alterar o domínio?

Deve ser necessário apenas atualizar a página para que tenha efeito. Fez alguma diferença? Como estão suas datas de postagem agora?

2 curtidas

Tenho uma atualização completa da página, ainda exibe ‘36’

e a configuração é 0

1 curtida

Hmm, parece que datas que ocorreram há menos de 23,5 horas são sempre mostradas como relativas, independentemente dessa configuração:

Portanto, sua alteração na configuração se aplicou a postagens com mais de 1 dia. Mas não parece que atualmente temos uma maneira de alterar o comportamento de coisas que ocorreram há menos de um dia.

2 curtidas

Eu vejo este arquivo
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>

este é o template correto, posso alterá-lo por um componente de tema?

Não, você não pode substituir os modelos .gjs, infelizmente (destinado a melhorar e incentivar a estabilidade das substituições)

1 curtida

Bem-vindo de volta. @aksoforever!

Como você está lidando com isso? Você pode nos contar um pouco mais sobre seu caso de uso?

Por que você gostaria de impor datas tão longas e absolutas aos seus membros? As datas “há quanto tempo” são bastante amigáveis ao olho e transmitem a informação que você precisa para saber quão antigo é um post. Passar o mouse sobre ela mostra o timestamp explícito.

1 curtida

Obrigado pela sua atenção @tobiaseigen

Sim, agora a exibição do Discourse está muito moderna e amigável, e mais adequada para a maioria das pessoas

Somente para um pequeno número de pessoas que usam com frequência que usar o tempo absoluto parece mais rápido e mais direto.

Em relação ao horário no e-mail, agora mostra apenas o mês e o dia.
Não é amigável usar o e-mail para visualizar informações. Ele não mostra o ano, especialmente ao revisar informações de muitos anos atrás.

1 curtida

Atualmente estou usando uma versão downgraded do Discourse e reescrevendo o código do front-end usando componentes

O email usa o seguinte em um plugin, posso modificar o short_date a partir de um componente do tema?

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