Ao invés de modificar o 'Date.prototype' nativo, o Day.js empacota o objeto nativo Date em um objeto Dayjs
.
Este objeto Dayjs
é imutável, ou seja, todas as operações desta API irão retornar um novo objeto Dayjs
.
O Day.js sempre irá retornar um novo objeto Dayjs
se nada for especificado.
Pode-se criar objetos Dayjs chamando dayjs()
, passando um dos vários tipos de parâmetro disponíveis.
Se não passar nenhum parâmetro, o objeto Dayjs
usará a data e hora atual.
dayjs();
String que atende ao formato ISO 8601.
dayjs(String);
dayjs('1995-12-25');
Valor inteiro representando o número de milissegundos desde o Unix Epoch (meio-dia de 1º de janeiro de 1970, no fuso horário UTC).
dayjs(Number);
dayjs(1318781876406);
Objeto Date nativo do Javascript.
dayjs(Date);
dayjs(new Date(2018, 8, 18));
Todos os objetos Dayjs
são imutáveis. Se quiser uma cópia, simplesmente chame .clone()
.
Chamar dayjs()
passando um objeto Dayjs
também irá cloná-lo.
dayjs(Dayjs);
dayjs().clone();
- retorna um Boolean
Se a data do objeto Dayjs
é considerada válida.
dayjs().isValid();
Obter (get) e modificar (set) datas.
- retorna um Number.
dayjs().year();
- retorna um Number
dayjs().month();
- retorna um Number
dayjs().date();
- retorna um Number
dayjs().day();
- retorna um Number
dayjs().hour();
- retorna um Number
dayjs().minute();
- retorna um Number
dayjs().second();
- retorna um Number
dayjs().millisecond();
Modificar a data. As unidades não fazem distinção entre maiúsculas e minúsculas.
dayjs().set((unit: String), (value: Int));
dayjs().set('month', 3); // Abril
dayjs().set('second', 30);
É possível manipular um objeto Dayjs
de várias formas. Por exemplo:
dayjs()
.startOf('month')
.add(1, 'day')
.subtract(1, 'year');
Novo objeto Dayjs
com tempo adicionado.
dayjs().add((value: Number), (unit: String));
dayjs().add(7, 'day');
Novo objeto Dayjs
com tempo subtraído.
dayjs().subtract((value: Number), (unit: String));
dayjs().subtract(7, 'year');
Novo objeto Dayjs
com tempo voltado para o começo da unidade de tempo passada.
dayjs().startOf((unit: String));
dayjs().startOf('year');
Novo objeto Dayjs
com tempo adiantado para o fim da unidade de tempo passada.
dayjs().endOf((unit: String));
dayjs().endOf('month');
Existem várias maneiras de mostrar o objeto Dayjs
para o usuário.
- retorna uma string
Recebe uma string com símbolos que serão substituídos por seus valores correspondentes.
dayjs().format(String);
dayjs().format(); // "2014-09-08T08:02:17-05:00" (ISO 8601, sem fração de segundo)
dayjs().format('{YYYY} MM-DDTHH:mm:ssZ[Z]'); // "{2014} 09-08T08:02:17-05:00Z"
- Para não processar caracteres na string passada como parâmetro, coloque-os entre chaves (ex: [Z]).
Lista de todos os formatos disponíveis:
Formato | Saída | Descrição |
---|---|---|
YY |
18 | Ano, com 2 dígitos |
YYYY |
2018 | Ano, com 4 dígitos |
M |
1-12 | Mês (começa em 1) |
MM |
01-12 | Mês, com 2 dígitos |
MMM |
Jan-Dec | Nome do mês abreviado |
MMMM |
January-December | Nome do mês completo |
D |
1-31 | Dia do mês |
DD |
01-31 | Dia do mês, com 2 dígitos |
d |
0-6 | Dia da semana (Domingo = 0) |
dddd |
Sunday-Saturday | Nome do dia da semana |
H |
0-23 | Hora |
HH |
00-23 | Hora, com 2 dígitos |
h |
1-12 | Hora (formato de 12 horas) |
hh |
01-12 | Hora, com 2 dígitos (formato de 12 horas) |
m |
0-59 | Minuto |
mm |
00-59 | Minuto, com 2 dígitos |
s |
0-59 | Segundo |
ss |
00-59 | Segundo, com 2 dígitos |
SSS |
000-999 | Milisegundo, com 3 dígitos |
Z |
+5:00 | Diferença do fuso horário UTC |
ZZ |
+0500 | Diferença do fuso horário UTC, com 2 dígitos |
A |
AM PM | |
a |
am pm |
- More available formats
Q Do k kk X x ...
in pluginAdvancedFormat
- retorna um Number
Diferença de dois objetos Dayjs
em milissegundos ou outra unidade de tempo especificada.
dayjs().diff(Dayjs, unit);
dayjs().diff(dayjs(), 'years'); // 0
- retorna um Number
Número de milissegundos desde o Unix Epoch.
dayjs().valueOf();
- retorna um Number
Número de segundos desde o Unix Epoch.
dayjs().unix();
- retorna um Number
Número de dias no mês atual.
dayjs().daysInMonth();
- retorna um objeto
Date
do Javascript
Obter cópia de um objeto Date
nativo a partir do objeto Dayjs
.
dayjs().toDate();
- retorna um Array
Retorna um array no formato dos parâmetros de new Date()
.
dayjs().toArray(); //[2018, 8, 18, 00, 00, 00, 000];
- retorna uma string
Ao serializar um objeto Dayjs
para JSON, retornará uma string no padrão ISO 8601.
dayjs().toJSON(); //"2018-08-08T00:00:00.000Z"
- retorna uma string
Retorna uma string no padrão ISO 8601.
dayjs().toISOString();
- retorna um Object
Retorna um Object contendo de ano a milisegundo.
dayjs().toObject(); // { years:2018, months:8, date:18, hours:0, minutes:0, seconds:0, milliseconds:0}
- retorna uma string
dayjs().toString();
- retorna um Boolean
Se a data de um objeto Dayjs
é anterior à de outro objeto Dayjs
.
dayjs().isBefore(Dayjs);
dayjs().isBefore(dayjs()); // false
- retorna um Boolean
Se a data de um objeto Dayjs
é igual à de outro objeto Dayjs
.
dayjs().isSame(Dayjs);
dayjs().isSame(dayjs()); // true
- retorna um Boolean
Se a data de um objeto Dayjs
é posterior à de outro objeto Dayjs
.
dayjs().isAfter(Dayjs);
dayjs().isAfter(dayjs()); // false
- retorna um Boolean
Se um ano é bissexto.
dayjs().isLeapYear();
dayjs('2000-01-01').isLeapYear(); // true
.from
.to
.fromNow
.toNow
to get relative time
plugin RelativeTime