String + Format
Se você conhece o formato de uma string de entrada, pode usá-lo para fazer o parsing da data.
TIP
Isso requer o plugin CustomParseFormat para funcionar.
js
dayjs.extend(customParseFormat);
dayjs('12-25-1995', 'MM-DD-YYYY');
Passe a chave do locale como o terceiro parâmetro para analisar strings de data e hora com suporte à localização.
js
require('dayjs/locale/es');
dayjs('2018 Enero 15', 'YYYY MMMM DD', 'es');
Você pode especificar um booleano como o último argumento para usar a análise estrita. A análise estrita exige que o formato e a entrada correspondam exatamente, incluindo os delimitadores.
js
dayjs('1970-00-00', 'YYYY-MM-DD').isValid(); // true
dayjs('1970-00-00', 'YYYY-MM-DD', true).isValid(); // false
dayjs('1970-00-00', 'YYYY-MM-DD', 'es', true).isValid(); // false
Se você não souber o formato exato de uma string de entrada, mas souber que pode ser um dentre vários, use um array de formatos.
js
dayjs('12-25-2001', ['YYYY', 'YYYY-MM-DD'], 'es', true);
Lista de todos os tokens de análise disponíveis
Input | Example | Description |
---|---|---|
YY | 01 | Ano com dois dígitos |
YYYY | 2001 | Ano com quatro dígitos |
M | 1-12 | Mês, começando em 1 |
MM | 01-12 | Mês, 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, 2 dígitos |
H | 0-23 | Horas |
HH | 00-23 | Horas, 2 dígitos |
h | 1-12 | Horas no formato de 12 horas |
hh | 01-12 | Horas no formato de 12 horas, 2 dígitos |
m | 0-59 | Minutos |
mm | 00-59 | Minutos, 2 dígitos |
s | 0-59 | Segundos |
ss | 00-59 | Segundos, 2 dígitos |
S | 0-9 | Centenas de milissegundos, 1 dígito |
SS | 00-99 | Dezenas de milissegundos, 2 dígitos |
SSS | 000-999 | Milissegundos, 3 dígitos |
Z | -05:00 | Deslocamento do UTC |
ZZ | -0500 | Deslocamento compacto do UTC, 2 dígitos |
A | AM PM | Post ou ante meridiem, em maiúsculas |
a | am pm | Post ou ante meridiem, em minúsculas |
Do | 1st... 31st | Dia do mês com sufixo ordinal |
X | 1410715640.579 | Timestamp Unix |
x | 1410715640579 | Timestamp Unix em milissegundos |
Diferenças para o Moment.js
title | parameters | dayjs | moment |
---|---|---|---|
data inválida com estouro | ('35/22/2010 99:88:77', 'DD-MM-YYYY HH:mm:ss') | '08-11-2011 04:29:17' | 'Invalid date' |
data inválida com estouro, estrito | ('35/22/2010 99:88:77', 'DD-MM-YYYY HH:mm:ss', true) | 'Invalid Date' | 'Invalid date' |
dia ou mês '0' (usando valores padrão) | ('1970-00-00', 'YYYY-MM-DD') | '1970-01-01' | 'Invalid date' |
dia ou mês '0' (usando valores padrão), estrito | ('1970-00-00', 'YYYY-MM-DD', true) | 'Invalid Date' | 'Invalid date' |
data que não corresponde ao formato | ('10/12/2014', 'YYYY-MM-DD') | '01-01-2014' | '12-20-2010' |
data que não corresponde ao formato, em modo estrito | ('10/12/2014', 'YYYY-MM-DD', true) | 'Invalid Date' | 'Invalid date' |
primeira correspondência versus correspondência mais longa | ('2012-05-28 10:21:15', ['YYYY', 'YYYY-MM-DD', 'YYYY-MM-DD HH:mm:ss']) | '2012-01-01 00:00:00' | '2012-05-28 10:21:15' |
primeira correspondência versus correspondência mais longa, estrito | ('2012-05-28 10:21:15', ['YYYY', 'YYYY-MM-DD', 'YYYY-MM-DD HH:mm:ss'], true) | '2012-05-28 10:21:15' | '2012-05-28 10:21:15' |
Lista de todos os caracteres separadores suportados:
-_:.,()/