Day.js

Day.js

  • Документация
  • GitHub
  • Languages iconРусский
    • English
    • 中文
    • Español
    • Помочь с переводом

›Настройка

Установка

  • Установка
  • Node.js
  • Браузер
  • TypeScript
  • Скачивание

Парсинг

  • Парсинг
  • Текущее время
  • Строка
  • Строка + Формат
  • Временная метка Unix (миллисекунды)
  • Временная метка Unix (секунды)
  • Date
  • Объект
  • Массив
  • UTC
  • Клон Dayjs
  • Валидация

Get + Set

  • Get + Set
  • Миллисекунда
  • Секунда
  • Минута
  • Час
  • День месяца
  • День недели
  • День недели (согласно локали)
  • День недели в формате ISO
  • День в году
  • Неделя в году
  • Неделя года (ISO)
  • Месяц
  • Квартал
  • Год
  • Неделя года
  • Неделя года (ISO)
  • Количество недель в году (ISO)
  • Get
  • Set
  • Максимум
  • Минимум

Воздействие

  • Воздействие
  • Добавление
  • Вычитание
  • Начальное время
  • Время окончания
  • Местное время
  • UTC
  • Смещение от UTC

Отображение

  • Отображение
  • Формат
  • Время от текущего момента
  • Время от X
  • Время до текущего момента
  • Время до X
  • Календарное время
  • Разница
  • Временная метка Unix (миллисекунды)
  • Временная метка Unix
  • Количество дней в месяце
  • В виде Javascript объекта Date
  • В виде массива
  • В виде JSON
  • В виде строки формата ISO 8601
  • В виде объекта
  • В виде строки

Запрос

  • Запрос
  • Находится до
  • Является таким же
  • Следует после
  • Является таким же или находится до
  • Является таким же или следует после
  • Находится между
  • Является ли Dayjs объектом
  • Является високосным годом

i18n

  • i18n
  • Загрузка локали в NodeJS
  • Загрузка локали в браузере
  • Изменение локали глобально
  • Изменение локалей локально
  • Проверка текущей локали Day.js
  • Список месяцев и дней недели текущей локали
  • Доступ к особым функциям локали

Плагины

  • Плагин
  • Загрузка плагина в NodeJS
  • Загрузка плагина в браузере
  • AdvancedFormat
  • ArraySupport
  • BadMutable
  • BigIntSupport
  • BuddhistEra
  • Календарь
  • CustomParseFormat
  • DayOfYear
  • DevHelper
  • Duration
  • IsBetween
  • IsLeapYear
  • IsSameOrAfter
  • IsSameOrBefore
  • IsToday
  • IsTomorrow
  • IsYesterday
  • IsoWeek
  • IsoWeeksInYear
  • LocaleData
  • LocalizedFormat
  • MinMax
  • ObjectSupport
  • PluralGetSet
  • PreParsePostFormat
  • QuarterOfYear
  • RelativeTime
  • Timezone
  • ToArray
  • ToObject
  • UpdateLocale
  • UTC
  • weekOfYear
  • WeekYear
  • Weekday

Настройка

  • Настройка
  • Наименования месяцев
  • Сокращенное имя месяца
  • Имена дней недели
  • Краткая запись дней недели
  • Минимальное сокращение дней недели
  • Относительное время
  • Календарь

Продолжительность

  • Продолжительность
  • Создание
  • Клон
  • Очеловечивание
  • Формат
  • Миллисекунды
  • Секунды
  • Минуты
  • Часы
  • Дни
  • Недели
  • Месяцы
  • Годы
  • Добавление времени
  • Вычитание времени
  • Использование продолжительности с diff
  • Единица измерения в качестве задания времени
  • Получение единицы времени
  • В виде JSON
  • Это продолжительность?
  • В виде строки формата ISO 8601
  • Локаль

Временные зоны

  • Временные зоны
  • Парсинг в зоне
  • Преобразование в зону
  • Угадывание зоны пользователя
  • Установка временной зоны по умолчанию
Translate

Относительное время

Locale#relativeTime должен быть объектом замены строк для dayjs#from.

Для этого необходим UpdateLocale для работы

dayjs.extend(updateLocale)

dayjs.updateLocale('en', {
  relativeTime: {
    future: "in %s",
    past: "%s ago",
    s: 'a few seconds',
    m: "a minute",
    mm: "%d minutes",
    h: "an hour",
    hh: "%d hours",
    d: "a day",
    dd: "%d days",
    M: "a month",
    MM: "%d months",
    y: "a year",
    yy: "%d years"
  }
})

Locale#relativeTime.future ссылается на префикс/суффикс будущих дат. Locale#relativeTime.past ссылается на префикс/суффикс прошедших дат.

Для всего остального, один символ обозначает единственное число, а двойной - множественное.

Дополнительная обработка токена

Если локаль запрашивает дополнительную обработку токена, она может установить его, как функцию со следующей сигнатурой вместо строки. Функция должна возвращать строку.

relativeTime: {
  ...,
  yy: function (number, withoutSuffix, key, isFuture) {
    return string;
  }
}

Аргумент number ссылается на число единиц измерения для этого ключа. Для m - это количество минут и т.д.

Аргумент withoutSuffix будет иметь истинное значение, если токен будет отображен без суффикса, и ложным, если наоборот (с суффиксом). (Причина инвертированной логики заключается в том, что поведение по умолчанию отображается с суффиксом.)

Аргумент key ссылается на ключ замены в объекте Locale#relativeTime. (например, s m mm h, и т.д.)

Аргумент isFuture будет обладать истинным значением, если он будет использовать суффикс/префикс для будущих времен и ложным - для прошедших.

Пороговые значения и округления относительного времени

Вы можете передавать объект с конфигурацией, пока используется этот плагин, для обновления его пороговых значений и округления.

var config = {
  thresholds: [{}],
  rounding: function
}
dayjs.extend(relativeTime, config)

thresholds представляет собой массив объектов, определенный в тот момент, когда единица измерения рассматривается в качестве минуты, часа и так далее. Например, по умолчанию более 45 секунд считается минутой, более 22 часов считается днем и так далее. Чтобы изменить это, вам нужно передать новое значение в thresholds, как например тут.

//строгое задание пороговых значений
var thresholds = [
  { l: 's', r: 1 },
  { l: 'm', r: 1 },
  { l: 'mm', r: 59, d: 'minute' },
  { l: 'h', r: 1 },
  { l: 'hh', r: 23, d: 'hour' },
  { l: 'd', r: 1 },
  { l: 'dd', r: 29, d: 'day' },
  { l: 'M', r: 1 },
  { l: 'MM', r: 11, d: 'month' },
  { l: 'y', r: 1 },
  { l: 'yy', d: 'year' }
]

Вы также можете добавить свой thresholds ключ и обновить локаль соответственно.

var thresholds = [
  ...,
  { l: 'ss', r: 59, d: 'second' }
]
dayjs.updateLocale('en', {
  relativeTime: {
    ...,
    ss: "%d seconds"
  }
})

rounding является Function для обработки числа перед передачей его в строку формата relativeTime, указанную в локали. Чтобы изменить их, вы можете передать новую rounding следующим образом.

// Math.round по умолчанию
var rounding = Math.floor
← Минимальное сокращение дней неделиКалендарь →
Day.js
Community
GitHubGitterSitemap
Copyright © 2025 Day.js