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)
- Diferencia
.diff(compared: Dayjs, unit: string (predeterminada: 'milliseconds'), 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 array
.toArray()
- Como JSON
.toJSON()
- Como cadena ISO 8601
.toISOString()
- Como objeto
.toObject()
- Como cadena
.toString()
- Dar formato
- Consulta
- 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();
Devuelve un dato de tipo number
, que representa el año del objeto Dayjs
.
dayjs().year();
Devuelve un dato de tipo number
, que representa el mes del objeto Dayjs
. Se cuenta desde 0, que se corresponde con enero.
dayjs().month();
Devuelve un dato de tipo number
, que indica el día del mes del objeto Dayjs
. Empieza por el día 1.
dayjs().date();
Devuelve un dato de tipo number
, que indica el día de la semana del objeto Dayjs
. Se cuenta desde 0, que se corresponde con el domingo.
dayjs().day();
Devuelve un dato de tipo number
, que indica la hora del objeto Dayjs
.
dayjs().hour();
Devuelve un dato de tipo number
, que indica los minutos del objeto Dayjs
.
dayjs().minute();
Devuelve un dato de tipo number
, que indica los segundos del objeto Dayjs
.
dayjs().second();
Devuelve un dato de tipo number
, que indica los milisegundos del objeto Dayjs
.
dayjs().millisecond();
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 |
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");
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 o llaves (p.ej.: [G] {um}
).
dayjs().format(); // fecha actual en ISO6801, sin fracciones de segundo p.ej. '2020-04-02T08:02:17-05:00'
dayjs("2019-01-25").format("{YYYY} MM-DDTHH:mm:ssZ[Z]"); // '{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
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 array que reproduce los parámetros de new Date()
.
dayjs("2019-01-25").toArray(); // [ 2019, 0, 25, 0, 0, 0, 0 ]
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 object
, con las propiedades de la fecha.
dayjs("2019-01-25").toObject();
/* { years: 2019,
months: 0,
date: 25,
hours: 0,
minutes: 0,
seconds: 0,
milliseconds: 0 } */
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
.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
.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