Me gustaria el moment().fromNow()
funcionalidad, pero cuando la fecha está cerca es demasiado precisa, por ejemplo. No quiero que se muestre "en 3 horas" sino "hoy", así que básicamente con una precisión "diaria".
Intenté usar la moment().calendar()
función, no se formatea si la diferencia de fecha es más de 1 día
javascript
date
momentjs
Ziarno
fuente
fuente
new Date()
para evitar una advertencia que la biblioteca me sigue dando (ver momentjs.com/docs/#/parsing/now )new Date()
requerido? Pensé que semoment()
generó una instancia de momento usando la fecha de hoy de todos modosPuede personalizar la forma en que
.fromNow
los.calendar
métodos y los métodos muestran las fechas utilizandomoment.updateLocale
. El siguiente código cambiará la forma en que se.calendar
muestra según la pregunta:Según la pregunta, parece que el
.calendar
método sería más apropiado:.fromNow
quiere tener un prefijo / sufijo pasado / presente, pero si desea obtener más información, puede leer la documentación en http://momentjs.com / docs / # / personalización / tiempo-relativo / .Para usar esto en un solo lugar en lugar de sobrescribir las configuraciones regionales, pase una cadena de su elección como el primer argumento cuando defina
moment.updateLocale
y luego invoque el método de calendario usando esa configuración regional (por ejemplomoment.updateLocale('yesterday-today').calendar( /* moment() or whatever */ )
) .EDITAR: Momento ^ 2.12.0 ahora tiene el
updateLocale
método.updateLocale
ylocale
parecen ser funcionalmente iguales, ylocale
aún no están en desuso, pero actualizaron la respuesta para usar el método más nuevo.fuente
Uso una combinación de
add()
yendOf()
con momentofuente
Requisitos:
moment().fromNow()
funcionalidad ."today"
,"yesterday"
,"tomorrow"
, etc.Solución:
NB: A partir de la versión 2.14.0, el argumento de formatos de la función de calendario puede ser una devolución de llamada, consulte http://momentjs.com/docs/#/displaying/calendar-time/ .
fuente
Puedes usar esto:
fuente
Tengo una solución similar, pero permite usar locales:
fuente
A partir de la 2.10.5, el momento admite la especificación de formatos de salida de calendario por invocación. Para obtener una documentación más detallada, consulte Momento - Calendario .
Desde 2.14.0, el calendario también puede recibir una devolución de llamada para devolver valores.
fuente
En Moment.js, el método from () tiene la precisión diaria que está buscando:
fuente
from
realmente no tiene precisión diaria. Por ejemplo, si ayer fue hace cuatro horas y elijo una hora que fue hace cinco horas, dirá "hace cinco horas" en lugar de ayer. Esta solución no tiene nada que ver con la precisión defrom
, sino con las fechas pasadas.Entonces esto es lo que terminé haciendo
fuente
Puede usar el método .add () y .subtract () para obtener la fecha de ayer y mañana. Luego, use el método de formato para obtener solo la fecha .format ("D / M / Y"), D significa Día, M para Mes, Y para Año. Consultar Moment Docs
El resultado será:
fuente
Así es como lo hago usando el momento :
fuente
fuente