Строка + Формат
Если вам известен формат входной строки, вы можете использовать его для разбора даты.
TIP
Для работы необходим плагин CustomParseFormat.
js
dayjs.extend(customParseFormat);
dayjs('12-25-1995', 'MM-DD-YYYY');
Передайте ключ локали в качестве третьего параметра для разбора строки даты и времени с учетом локализации.
js
require('dayjs/locale/es');
dayjs('2018 Enero 15', 'YYYY MMMM DD', 'es');
Вы можете указать логическое значение в качестве последнего аргумента, чтобы включить строгий парсинг. Строгий парсинг требует полного соответствия формата и входных данных, включая разделители.
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
Если вы не знаете точный формат входной строки, но предполагаете, что он может быть одним из нескольких, вы можете использовать массив форматов.
js
dayjs('12-25-2001', ['YYYY', 'YYYY-MM-DD'], 'es', true);
Список всех доступных токенов разбора
Ввод | Пример | Описание |
---|---|---|
YY | 01 | Двузначный год |
YYYY | 2001 | Четырехзначный год |
M | 1-12 | Месяц, начиная с 1 |
MM | 01-12 | Месяц, 2 цифры |
MMM | Jan-Dec | Сокращённое название месяца |
MMMM | January-December | Полное название месяца |
D | 1-31 | День месяца |
DD | 01-31 | День месяца, 2 цифры |
H | 0-23 | Часы |
HH | 00-23 | Часы, 2 цифры |
h | 1-12 | Часы, 12-часовой формат |
hh | 01-12 | Часы, 12-часовой формат, 2 цифры |
m | 0-59 | Минуты |
mm | 00-59 | Минуты, 2 цифры |
s | 0-59 | Секунды |
ss | 00-59 | Секунды, 2 цифры |
S | 0-9 | Сотни миллисекунд, 1 цифра |
SS | 00-99 | Десятки миллисекунд, 2 цифры |
SSS | 000-999 | Миллисекунды, 3 цифры |
Z | -05:00 | Смещение от UTC |
ZZ | -0500 | Компактное смещение от UTC, 2 цифры |
A | AM PM | AM/PM, верхний регистр |
a | am pm | am/pm, нижний регистр |
Do | 1st... 31st | День месяца с порядковым номером |
X | 1410715640.579 | Unix-время (timestamp) |
x | 1410715640579 | Unix-время в миллисекундах (timestamp в миллисекундах) |
Отличия от moment
Заголовок | Параметры | dayjs | moment |
---|---|---|---|
некорректная дата с переполнением | ('35/22/2010 99:88:77', 'DD-MM-YYYY HH:mm:ss') | '08-11-2011 04:29:17' | 'Invalid date' |
некорректная дата с переполнением, строго | ('35/22/2010 99:88:77', 'DD-MM-YYYY HH:mm:ss', true) | 'Invalid Date' | 'Invalid date' |
день или месяц «0» (значения по умолчанию) | ('1970-00-00', 'YYYY-MM-DD') | '1970-01-01' | 'Invalid date' |
день или месяц «0» (значения по умолчанию), строгий режим | ('1970-00-00', 'YYYY-MM-DD', true) | 'Invalid Date' | 'Invalid date' |
дата не соответствует формату | ('10/12/2014', 'YYYY-MM-DD') | '01-01-2014' | '12-20-2010' |
дата не соответствует формату, строго | ('10/12/2014', 'YYYY-MM-DD', true) | 'Invalid Date' | 'Invalid date' |
первое совпадение или самое длинное совпадение | ('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' |
первое совпадение или самое длинное совпадение, строгий режим | ('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' |
Список всех поддерживаемых символов-разделителей:
-_:.,()/