Come cambiare i dati del post da dati relativi a assoluti

Ciao team,
voglio modificare il formato dei dati del post in YYYY-MM-DD HH:mm
Modificare in JavaScript frontend non sembra ragionevole

  1. Posso usare un tema per sovrascrivere questo orario?
  2. come posso modificarlo anche nell’email (ora mostra solo i dati)?
1 Mi Piace

Tutti i formati di data sono disponibili per la personalizzazione insieme ad altri testi. Dai un’occhiata a questa guida:

5 Mi Piace

Grazie per la tua risposta, David
Ho visto questa impostazione personalizzata, ma sembra che non la trovi qui.
Voglio visualizzare il formato dell’ora di tutti i post come ora assoluta. Ad esempio, il mio post attuale “3h” viene visualizzato come “12 Mag 17:33”


sai qual è il modo migliore per cambiare tutti i dati dei post nel formato YYYY-MM-DD HH:mm, anche se postati pochi minuti fa

1 Mi Piace

Ah, capisco!

In tal caso, potresti provare a modificare l’impostazione del sito “relative date duration”.

relative_date_duration: Numero di giorni dopo la pubblicazione in cui le date dei post verranno mostrate come relative (7g) invece che assolute (20 feb).

Quindi, penso che nel tuo caso, dovresti impostarlo su 0.

2 Mi Piace

sì,
l’ho impostato a 0, ma ancora non ha effetto adesso. Ci vuole un po’ di tempo o devo eseguire rake posts:rebake come facciamo dopo aver cambiato dominio?

Dovrebbe essere sufficiente un aggiornamento della pagina per avere effetto. Ha fatto qualche differenza? Come sono ora i tuoi dati dei post?

2 Mi Piace

Ho un aggiornamento completo della pagina, mostra ancora ‘36’

e l’impostazione è 0

1 Mi Piace

Hmm, sembra che le date che risalgono a meno di 23,5 ore fa vengano sempre mostrate come relative, indipendentemente da tale impostazione:

Quindi, la tua modifica all’impostazione si applicherà ai post più vecchi di 1 giorno. Ma non sembra che attualmente abbiamo un modo per modificare il comportamento delle cose che risalgono a meno di un giorno fa.

2 Mi Piace

Vedo questo file
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>

è questo il template corretto, posso modificarlo con un componente tema?

No, purtroppo non puoi sovrascrivere i modelli .gjs (pensato per migliorare e incoraggiare la stabilità delle sovrascritture)

1 Mi Piace

Ben tornato. @aksoforever!

Come te la cavi con questo? Puoi raccontarci qualcosa di più sul tuo caso d’uso?

Perché vorresti imporre date così lunghe e assolute ai tuoi membri? Le date di “tempo fa” sono abbastanza amichevoli per l’occhio e trasmettono le informazioni necessarie su quanto è vecchio un post. Passando sopra di esse, ti mostra il timestamp esplicito.

1 Mi Piace

Grazie per la tua attenzione @tobiaseigen

Sì, ora la visualizzazione di Discourse è molto moderna e amichevole, e più adatta alla maggior parte delle persone

È pensata solo per un piccolo numero di utenti che la usano frequentemente, perché usare il tempo assoluto sembra più veloce e diretto.

Per quanto riguarda l’orario nell’email, ora mostra solo il mese e il giorno.
Non è user-friendly usare le email per visualizzare le informazioni. Non mostra l’anno, soprattutto quando si revisionano informazioni di molti anni fa.

1 Mi Piace

Attualmente sto utilizzando una versione downgraded di Discourse e riscrivendo il codice front-end usando componenti

L’email utilizza quanto sotto in un plugin, posso modificare short_date da un componente del 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