J'aimerais la moment().fromNow()
fonctionnalité, mais quand la date est proche, elle est trop précise - ex. Je ne veux pas que ça montre «dans 3 heures» mais «aujourd'hui» - donc fondamentalement avec une précision «quotidienne».
J'ai essayé d'utiliser la moment().calendar()
fonction, elle ne se formate pas si la différence de date est supérieure à 1 jour
javascript
date
momentjs
Ziarno
la source
la source
new Date()
pour éviter un avertissement que la lib ne cesse de me donner (voir momentjs.com/docs/#/parsing/now )new Date()
nécessaire? Je pensais avoirmoment()
généré une instance de moment en utilisant la date d'aujourd'hui de toute façonVous pouvez personnaliser la façon dont
.fromNow
les.calendar
méthodes et affichent les dates à l'aide demoment.updateLocale
. Le code suivant changera la façon dont.calendar
s'affiche selon la question:Sur la base de la question, il semble que la
.calendar
méthode serait plus appropriée -.fromNow
veut avoir un préfixe / suffixe passé / présent, mais si vous souhaitez en savoir plus, vous pouvez lire la documentation sur http://momentjs.com / docs / # / personnalisation / relative-time / .Pour utiliser cela à un seul endroit au lieu d'écraser les paramètres régionaux, passez une chaîne de votre choix comme premier argument lorsque vous définissez le
moment.updateLocale
, puis invoquez la méthode de calendrier en utilisant ces paramètres régionaux (par exemplemoment.updateLocale('yesterday-today').calendar( /* moment() or whatever */ )
) .EDIT: Moment ^ 2.12.0 a maintenant la
updateLocale
méthode.updateLocale
etlocale
semblent être fonctionnellement identiques, etlocale
n'est pas encore obsolète, mais a mis à jour la réponse pour utiliser la nouvelle méthode.la source
J'utilise une combinaison de
add()
etendOf()
avec momentla source
Exigences:
moment().fromNow()
fonctionnalité standard ."today"
,"yesterday"
,"tomorrow"
, etc.Solution:
NB: A partir de la version 2.14.0, l'argument formats de la fonction calendrier peut être un callback, voir http://momentjs.com/docs/#/displaying/calendar-time/ .
la source
Vous pouvez utiliser ceci:
la source
J'ai une solution similaire, mais permet d'utiliser des locales:
la source
À partir de la version 2.10.5, le moment prend en charge la spécification des formats de sortie du calendrier par appel. Pour une documentation plus détaillée, consultez Moment - Calendar .
À partir de la version 2.14.0, le calendrier peut également prendre un rappel pour renvoyer des valeurs.
la source
Dans Moment.js, la méthode from () a la précision quotidienne que vous recherchez:
la source
from
n'a pas vraiment de précision quotidienne. Par exemple, si hier était il y a quatre heures et que je choisis une heure qui était il y a cinq heures, il indiquera "il y a 5 heures" au lieu d'hier. Cette solution n'a rien à voir avec la précision defrom
, mais avec les dates passées.Alors c'est ce que j'ai fini par faire
la source
Vous pouvez utiliser les méthodes .add () et .subtract () pour obtenir la date d'hier et de demain. Ensuite, utilisez la méthode de format pour obtenir uniquement la date .format ("J / M / A"), D pour Jour, M pour Mois, Y pour Année. Archiver les documents Moment
Le résultat sera:
la source
Voici comment je fais cela en utilisant moment :
la source
la source