Como desarrollador, te habrás dado cuenta que en la gran mayoría de los proyectos, se necesita manipular fechas de alguna una forma u otra. Ya sea buscando el último día del mes, comparando fechas, buscando cuanto tiempo ha pasado entre 2 fechas, entre otros. En fin, saber cómo manipular fechas es algo esencial al desarrollar aplicaciones.
Agraciadamente existe la librería Moment.js. Moment.js es una librería para Javascript que permite que manipular fechas sea algo extremadamente sencillo. ¿A quién le interesa?
Instalación
Primero, necesitas instalar la librería. Puedes bajarla aquí y referenciarla en tu página web o, si estas usando npm, yarn y otra herramienta de manejo de paquetes, puedes usar el código de abajo.
npm install moment --save # npm yarn add moment # Yarn Install-Package Moment.js # NuGet spm install moment --save # spm meteor add momentjs:moment # meteor
Bien, ahora veamos ejemplos prácticos de manipulación de fechas usando Moment.js.
Calcular el comienzo y final
Para buscar el comienzo y final, Momen.js tiene dos funciones, startOf y endOf. Con estas funciones puedes conseguir el cuándo comienza o termina un día, semana, mes o año. Todo depende de la fecha base.
Sencillo, ¿verdad?
Comparación de fechas
Una de las cosas que más hacemos con las fechas es comprarlas. Y para esto Moment.js nos provee también, dos funciones, isBefore, isAfter, isSame, isBetween y isLeapYear. Veamos cómo se utiliza:
Manipulación de fechas
También, podemos usar esta librería para manipular fechas. Esto quiere decir que podemos sumar o restar desde milisegundos hasta años. Para esto usamos las funciones add y substract.
Tiempo entre 2 fechas
Si queremos calcular cuánto tiempo ha pasado entre una fecha y otra, podemos hacerlo de la siguiente manera:
Aplicar formato de fechas
Para aplicarle formato a una fecha, usamos la función format pasando como parámetro la sintaxis del formato deseado. La siguiente tabla muestra la sintaxis requerida para darle formato a las fechas.
Token | Resultado | |
---|---|---|
Mes | M | 1 2 … 11 12 |
Mo | 1st 2nd … 11th 12th | |
MM | 01 02 … 11 12 | |
MMM | Jan Feb … Nov Dec | |
MMMM | January February … November December | |
Trimestre | Q | 1 2 3 4 |
Qo | 1st 2nd 3rd 4th | |
Día del mes |
D | 1 2 … 30 31 |
Do | 1st 2nd … 30th 31st | |
DD | 01 02 … 30 31 | |
Día del año |
DDD | 1 2 … 364 365 |
DDDo | 1st 2nd … 364th 365th | |
DDDD | 001 002 … 364 365 | |
Día de la semana |
d | 0 1 … 5 6 |
do | 0th 1st … 5th 6th | |
dd | Su Mo … Fr Sa | |
ddd | Sun Mon … Fri Sat | |
dddd | Sunday Monday … Friday Saturday | |
Semana del año |
w | 1 2 … 52 53 |
wo | 1st 2nd … 52nd 53rd | |
ww | 01 02 … 52 53 | |
Wo | 1st 2nd … 52nd 53rd | |
WW | 01 02 … 52 53 | |
Año | YY | 70 71 … 29 30 |
YYYY | 1970 1971 … 2029 2030 | |
Y | 1970 1971 … 9999 +10000 +10001 Note: This complies with the ISO 8601 standard for dates past the year 9999 |
|
Semana año |
gg | 70 71 … 29 30 |
gggg | 1970 1971 … 2029 2030 | |
GGGG | 1970 1971 … 2029 2030 | |
AM/PM | A | AM PM |
a | am pm | |
Hora | H | 0 1 … 22 23 |
HH | 00 01 … 22 23 | |
h | 1 2 … 11 12 | |
hh | 01 02 … 11 12 | |
k | 1 2 … 23 24 | |
kk | 01 02 … 23 24 | |
Minuto | m | 0 1 … 58 59 |
mm | 00 01 … 58 59 | |
Segundo | s | 0 1 … 58 59 |
ss | 00 01 … 58 59 | |
Fracción de segundo |
S | 0 1 … 8 9 |
SS | 00 01 … 98 99 | |
SSS | 000 001 … 998 999 | |
SSSS … SSSSSSSSS | 000[0..] 001[0..] … 998[0..] 999[0..] | |
Z | -07:00 -06:00 … +06:00 +07:00 | |
ZZ | -0700 -0600 … +0600 +0700 | |
Unix Timestamp | X | 1360013296 |
Unix Millisecond Timestamp | x | 1360013296123 |
Aquí un ejemplo:
Como ves, esta librería hace que manipular fechas en javascript sea algo sumamente sencillo. ¿Has usado esta librería antes o tiene alguna otra? Cuéntame en los comentarios.
Manipular fechas con Moment.js
Roberto Torres Rodríguez
Related posts
Publicaciones Populares
Categorías
- ASP.Net (6)
- C# (10)
- CSS (5)
- DIY (1)
- General (5)
- JavaScript (8)
- JQuery (6)
- Kodi (antes XBMC) (4)
- Nuevo (3)
- Raspberry Pi (2)
- SQL Server (15)
- Uncategorized (1)
- Vue.js (2)
- Wordpress (1)