Строка + Формат
Если вы знаете формат входной строки, то вы можете использовать ее для разбора даты.
Для этого необходим
CustomParseFormat
для работы
dayjs.extend(customParseFormat)
dayjs("12-25-1995", "MM-DD-YY")
Передача ключа локали в качестве третьего параметра для парсинга дата-временной строки с ее учетом (локали).
require('dayjs/locale/es')
dayjs('2018 Enero 15', 'YYY MMMM DD', 'es')
Вы можете указать булево значение для последнего аргумента, чтобы использовать строгий (strict) парсинг. Строгий парсинг требует, чтобы формат даты и входные данные совпадали, включая знаки-делители.
dayjs('1970-00-00', 'YYYY-MM-DD').isValid() // true
dayjs('1970-00-00', 'YYYY-MM-DD', true).isValid() // false
dayjs('1970-00-00', 'YYY-MM-DD', 'es', true).isValid() // false
Если вы не знаете точного формата входных данных, но знаете, что она может быть одной из множества, используйте массив форматов.
dayjs("12-25-2001", ["YYYY", "YYYY-MM-DD"], true);
Список доступных токенов парсинга
Вход | Пример | Описание |
---|---|---|
YY | 01 | Двухзначное значение года |
YYYY | 2001 | Четырехзначное значение года |
M | 1-12 | Месяц, начиная с 1 |
ММ | 01-12 | Месяц, двухзначное число |
МММ | Янв-Дек | Сокращенное название месяца |
ММММ | Январь-Декабрь | Полное название месяца |
D | 1-31 | День месяца |
DD | 01-31 | День месяца, двухзначное число |
H | 0-23 | Часы |
HH | 00-23 | Часы, двухзначное число |
h | 1-12 | Часы, 12-часовой формат времени |
hh | 01-12 | Часы, 12-часовой формат времени, двухзначное число |
m | 0-59 | Минуты |
mm | 00-59 | Минуты, двухзначное число |
s | 0-59 | Секунды |
ss | 00-59 | Секунды, двухзначное число |
S | 0-9 | Сотни миллисекунд, 1 цифра |
SS | 00-99 | Десятки миллисекунд, двухзначное число |
SSS | 000-999 | Миллисекунды, трехзначное число |
Z | -05:00 | Значение смещения от UTC |
ZZ | -0500 | Компактное значения смещения от UTC, двухзначное число |
A | AM PM | После или дополуденное время, прописные символы |
a | am pm | После или дополуденное время, строчные символы |
Do | 1st... 31st | Порядковое значение дня месяца |
X | 1410715640.579 | Unix timestamp |
х | 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' |
некорректная дата (за пределами допустимых значений), strict | ('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'-ой день месяца (значения по умолчанию), strict | ('1970-00-00', 'YYYY-MM-DD', true) | 'Invalid date' | 'Invalid date' |
дата, не соответствующая формату | ('10/12/2014', 'YYYY-MM-DD') | '01-01-2014' | '12-20-2010' |
дата, не соответствующая формату, strict | ('10/12/2014', 'YYYY-MM-DD', true) | 'Invalid date' | 'Invalid date' |
первое соответствие vs. самое длинное соответствие | ('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' |
первое соответствие vs. самое длинное соответствие, strict | ('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' |
Список распознаваемых символов разделителей:
-_:.,()/