Les plugins datetime existent parce qu'il est très difficile de les faire correctement. Cette vidéo expliquant les incohérences des dates et heures éclairera la situation.
Toutes les solutions ci-dessus sans plugins sont incorrectes.
Pour travailler avec les dates et heures, il est préférable d'utiliser un plugin. Parmi les centaines de plugins qui traitent de ce sujet, nous utilisons Moment.js et il fait le travail.
À partir de la documentation de l'API Twitter, nous pouvons voir leur format de timestamp :
"created_at":"Wed Aug 27 13:08:45 +0000 2008"
Nous pouvons l'analyser avec Moment.js
const postDatetime = moment(
"Wed Aug 27 13:08:45 +0000 2008",
"dddd, MMMM Do, h:mm:ss a, YYYY"
);
const now = moment();
const timeAgo = now.diff(postDatetime, 'seconds');
Pour spécifier l'unité de temps préférée pour la méthode diff
, nous pouvons utiliser la méthode isSame
. par exemple :
if (now.isSame(postDatetime, 'day')) {
const timeUnit = 'jours';
}
En général, construire quelque chose comme :
`Publié il y a ${timeAgo} ${timeUnit}`;
Reportez-vous à la documentation de votre plugin pour gérer les calculs de temps relatif (c'est-à-dire "Il y a combien de temps ?").
0 votes
Vérifiez ceci - formatjs.io/docs/polyfills/intl-relativetimeformat