En lugar de modificar el Date.prototype
nativo, Day.js construye una abstracción sobre el objeto Date
: el objeto Dayjs
.
El objeto Dayjs
es inmutable, por lo que toda operación de la API que altere de alguna forma la información contenida en el objeto Dayjs
devolverá una nueva instancia de este.
- Referencia de la API
- Análisis
- Get y Set
- Manipulación
- Presentación
- Dar formato
.format(stringWithTokens: string)
- Difference
.diff(compared: Dayjs, unit?: string, float?: boolean)
- Tiempo Unix (milisegundos)
.valueOf()
- Tiempo Unix (segundos)
.unix()
- UTC offset (minutos)
.utcOffset()
- Días en el mes
.daysInMonth()
- Como objeto
Date
.toDate()
- Como JSON
.toJSON()
- Como cadena ISO 8601
.toISOString()
- Como cadena
.toString()
- Dar formato
- Consulta
- UTC
- API de complementos
Si se llama al constructor sin parámetros, este devuelve un nuevo objeto Dayjs
con la fecha y hora actual.
dayjs()
Day.js también analiza otros formatos de fecha.
Cadena ISO 8601
dayjs('2018-04-04T16:00:00.000Z')
dayjs(new Date(2018, 8, 18))
Devuelve un objeto Dayjs
a partir de un tiempo unix (milisegundos desde la época Unix).
dayjs(1318781876406)
Devuelve un objeto Dayjs
a partir de un tiempo Unix (segundos desde la época Unix).
dayjs.unix(1318781876)
dayjs.unix(1318781876.721)
- parse custom formats
dayjs("12-25-1995", "MM-DD-YYYY")
in pluginCustomParseFormat
Devuelve una copia de Dayjs
.
dayjs().clone()
dayjs(dayjs('2019-01-25')) // si el constructor recibe un objeto Dayjs también lo clonará
Devuelve un dato de tipo boolean
, que indica si la fecha Dayjs
es válida o no.
dayjs().isValid()
Gets or sets the year.
dayjs().year()
dayjs().year(2000)
Gets or sets the month. Starts at 0
dayjs().month()
dayjs().month(0)
Gets or sets the day of the month. Starts at 1
dayjs().date()
dayjs().date(1)
Gets or sets the day of the week. Starts on Sunday with 0
dayjs().day()
dayjs().day(0)
Gets or sets the hour.
dayjs().hour()
dayjs().hour(12)
Gets or sets the minute.
dayjs().minute()
dayjs().minute(59)
Gets or sets the second.
dayjs().second()
dayjs().second(1)
Gets or sets the millisecond.
dayjs().millisecond()
dayjs().millisecond(1)
Returns a number
with information getting from Dayjs
object
dayjs().get('month') // start 0
dayjs().get('day')
Devuelve un nuevo objeto Dayjs
con los cambios aplicados.
dayjs().set('date', 1)
dayjs().set('month', 3) // Abril
dayjs().set('second', 30)
Unit | Abreviatura | Descripción |
---|---|---|
date |
Día del mes | |
day |
d |
Día de la semana (de domingo 0, a sábado 6) |
month |
M |
Mes (January as 0, December as 11) |
year |
y |
Año |
hour |
h |
Hora |
minute |
m |
Minuto |
second |
s |
Segundo |
millisecond |
ms |
Milisegundo |
Los objetos Dayjs
pueden manipularse de diversas formas.
dayjs('2019-01-25')
.add(1, 'day')
.subtract(1, 'year')
.toString() // Fri, 26 Jan 2018 00:00:00 GMT
Devuelve un nuevo objeto Dayjs
, resultante de añadir al actual el tiempo indicado.
dayjs().add(7, 'day')
Devuelve un nuevo objeto Dayjs
, resultante de restar al actual el tiempo indicado.
dayjs().subtract(7, 'year')
Devuelve un nuevo objeto Dayjs
, resultante de ajustar el actual al principio de la unidad de tiempo indicada.
dayjs().startOf('week') // Depends on `weekStart` in locale
Devuelve un nuevo objeto Dayjs
, resultante de ajustar el actual al final de la unidad de tiempo indicada.
dayjs().endOf('month')
Devuelve un dato de tipo string
con la fecha del objeto Dayjs
formateada.
Para escapar caracteres, estos se han de encerrar entre corchetes (p.ej.: [A] [MM]
).
dayjs().format() // fecha actual en ISO8601, sin fracciones de segundo p.ej. '2020-04-02T08:02:17-05:00'
dayjs('2019-01-25').format('[YYYY] YYYY-MM-DDTHH:mm:ssZ[Z]') // 'YYYY 2019-01-25T00:00:00-02:00Z'
dayjs('2019-01-25').format('DD/MM/YYYY') // '25/01/2019'
Formato | Salida | Descripción |
---|---|---|
YY |
18 | Año, con 2 dígitos |
YYYY |
2018 | Año, con 4 dígitos |
M |
1-12 | Mes, contando desde 1 |
MM |
01-12 | Mes, con 2 dígitos |
MMM |
Jan-Dec | Nombre abreviado del mes |
MMMM |
January-December | Nombre completo del mes |
D |
1-31 | Día del mes |
DD |
01-31 | Día del mes, con 2 dígitos |
d |
0-6 | Día de la semana, siendo el domingo el 0 |
dd |
Su-Sa | Nombre mínimo del día de la semana |
ddd |
Sun-Sat | Nombre abreviado del día de la semana |
dddd |
Sunday-Saturday | Nombre del día de la semana |
H |
0-23 | Hora |
HH |
00-23 | Hora, con 2 dígitos |
h |
1-12 | Hora, formato de 12 horas |
hh |
01-12 | Hora, formato de 12 horas, con 2 dígitos |
m |
0-59 | Minutos |
mm |
00-59 | Minutos, con 2 dígitos |
s |
0-59 | Segundos |
ss |
00-59 | Segundos, con 2 dígitos |
SSS |
000-999 | Milisegundos, con 3 dígitos |
Z |
+5:00 | Diferencia horaria UTC |
ZZ |
+0500 | Diferencia horaria UTC, con 2 dígitos |
A |
AM PM | |
a |
am pm |
- Más formatos disponibles
Q Do k kk X x ...
con el complementoAdvancedFormat
- Localized format options
L LT LTS ...
in pluginLocalizedFormat
Devuelve un dato de tipo number
, que indica la diferencia existente entre dos objetos Dayjs
, expresada en la unidad de tiempo dada.
const date1 = dayjs('2019-01-25')
const date2 = dayjs('2018-06-05')
date1.diff(date2) // 20214000000 default milliseconds
date1.diff(date2, 'month') // 7
date1.diff(date2, 'month', true) // 7.645161290322581
date1.diff(date2, 'day') // 233
Devuelve un dato de tipo number
, que indica el número de milisegundos transcurridos desde la época Unix para el objeto Dayjs
.
dayjs('2019-01-25').valueOf() // 1548381600000
Devuelve un dato de tipo number
, que indica el número de segundos transcurridos desde la época Unix para el objeto Dayjs
.
dayjs('2019-01-25').unix() // 1548381600
Devuelve el UTC offset en minutos del Dayjs
.
dayjs().utcOffset()
Devuelve un dato de tipo number
, que indica el número de días contenidos en el mes del objeto Dayjs
.
dayjs('2019-01-25').daysInMonth() // 31
Devuelve un objeto Date
nativo, obtenido a partir del objeto Dayjs
.
dayjs('2019-01-25').toDate()
Devuelve un objeto Dayjs
formateado como una cadena ISO8601.
dayjs('2019-01-25').toJSON() // '2019-01-25T02:00:00.000Z'
Devuelve un objeto Dayjs
formateado como una cadena ISO8601.
dayjs('2019-01-25').toISOString() // '2019-01-25T02:00:00.000Z'
Devuelve un dato de tipo string
, que representa la fecha.
dayjs('2019-01-25').toString() // 'Fri, 25 Jan 2019 02:00:00 GMT'
Devuelve un dato de tipo boolean
, que indica si la fecha del objeto Dayjs
inicial es anterior o no a la fecha del objeto Dayjs
a comparar.
dayjs().isBefore(dayjs()) // false
dayjs().isBefore(dayjs(), 'year') // false
Devuelve un dato de tipo boolean
, que indica si la fecha del objeto Dayjs
inicial es igual o no que la fecha del objeto Dayjs
a comparar.
dayjs().isSame(dayjs()) // true
dayjs().isSame(dayjs(), 'year') // true
Devuelve un dato de tipo boolean
, que indica si la fecha del objeto Dayjs
inicial es posterior o no a la fecha del objeto Dayjs
a comparar.
dayjs().isAfter(dayjs()) // false
dayjs().isAfter(dayjs(), 'year') // false
Devuelve un dato de tipo boolean
, que indica si la variable proporcionada es un objeto Dayjs
o no.
dayjs.isDayjs(dayjs()) // true
dayjs.isDayjs(new Date()) // false
The operator instanceof
works equally well:
dayjs() instanceof dayjs // true
If you want to parse or display in UTC, you can use .utc
.local
.isUTC
with plugin UTC
.from
.to
.fromNow
.toNow
para obtener el tiempo relativo
complemento RelativeTime
.isLeapYear
para saber si se trata de un año bisiesto o no
complemento IsLeapYear
.week
para obtener la semana del año
complemento WeekOfYear
.weekday
to get or set locale aware day of the week
plugin WeekDay
.isoWeeksInYear
to get the number of weeks in year
plugin IsoWeeksInYear
.isSameOrAfter
to check if a date is same of after another date
plugin IsSameOrAfter
.isSameOrBefore
to check if a date is same of before another date.
plugin IsSameOrBefore
.isBetween
para comprobar si una fecha se encuentra entre otras dos fechas dadas
complemento IsBetween
.quarter
to get quarter of the year
plugin QuarterOfYear
.toArray
to return an array
that mirrors the parameters
plugin ToArray
.toObject
to return an object
with the date's properties.
plugin ToObject
.min
.max
to compare given dayjs instances.
plugin MinMax
.calendar
to display calendar time
plugin Calendar