Day.js

Day.js

  • 文档
  • GitHub
  • 语言图标英语
    • 中文
    • Русский
    • 帮助翻译

›自定义

安装

  • 安装
  • Node.js
  • 浏览器
  • TypeScript
  • 下载

解析

  • 解析
  • 现在
  • 字符串
  • 字符串 + 格式
  • Unix 时间戳(毫秒)
  • Unix 时间戳(秒)
  • 日期
  • 对象
  • 数组
  • UTC
  • Dayjs 克隆
  • 验证

获取 + 设置

  • 获取 + 设置
  • 毫秒
  • 秒
  • 分钟
  • 小时
  • 月份日期
  • 星期几
  • 星期几(区域感知)
  • ISO 星期几
  • 一年中的第几天
  • 一年中的第几周
  • 一年中的第几周(ISO)
  • 月份
  • 季度
  • 年份
  • 周年份
  • 周年份(ISO)
  • 一年中的周数(ISO)
  • 获取
  • 设置
  • 最大值
  • 最小值

操作

  • 操作
  • 添加
  • 减去
  • 时间开始
  • 时间结束
  • 本地
  • UTC
  • UTC 偏移量

显示

  • 显示
  • 格式化
  • 距今时间
  • 距 X 时间
  • 距今时间
  • 距 X 时间
  • 日历时间
  • 差异
  • Unix 时间戳(毫秒)
  • Unix 时间戳
  • 一个月的天数
  • 作为 Javascript 日期
  • 作为数组
  • 作为 JSON
  • 作为 ISO 8601 字符串
  • 作为对象
  • 作为字符串

查询

  • 查询
  • 在之前
  • 相同
  • 在之后
  • 相同或之前
  • 相同或之后
  • 在之间
  • 是 Day.js 对象
  • 是闰年

国际化

  • 国际化
  • 在 NodeJS 中加载语言环境
  • 在浏览器中加载语言环境
  • 全局更改语言环境
  • 局部更改语言环境
  • 检查当前 Day.js 语言环境
  • 列出当前语言环境的月份和星期
  • 访问特定于语言环境的功能

插件

  • 插件
  • 在 NodeJS 中加载插件
  • 在浏览器中加载插件
  • 高级格式
  • 数组支持
  • 不可变对象
  • BigInt 支持
  • 佛教纪元
  • 日历
  • 自定义解析格式
  • 年中的天数
  • 开发助手
  • 持续时间
  • 在之间
  • 是闰年
  • 相同或之后
  • 相同或之前
  • 是今天
  • 是明天
  • 是昨天
  • ISO 周
  • 一年中的 ISO 周数
  • 语言环境数据
  • 本地化格式
  • 最小值和最大值
  • 对象支持
  • 复数获取和设置
  • 解析前和格式化后
  • 一年中的季度
  • 相对时间
  • 时区
  • 转换为数组
  • 转换为对象
  • 更新语言环境
  • UTC
  • 一年中的周数
  • 周年份
  • 星期

自定义

  • 自定义
  • 月份名称
  • 月份缩写
  • 星期名称
  • 星期缩写
  • 最小星期缩写
  • 相对时间
  • 日历

持续时间

  • 持续时间
  • 创建
  • 克隆
  • 人性化
  • 格式化
  • 毫秒
  • 秒
  • 分钟
  • 小时
  • 天
  • 周
  • 月
  • 年
  • 添加时间
  • 减去时间
  • 使用 Duration 与 Diff
  • 作为时间单位
  • 获取时间单位
  • 作为 JSON
  • 是否为 Duration
  • 作为 ISO 8601 字符串
  • 语言环境

时区

  • 时区
  • 在时区内解析
  • 转换为时区
  • 猜测用户时区
  • 设置默认时区
编辑

相对时间

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 参数如果标记将不带后缀显示,则为 true,如果标记将带后缀显示,则为 false。(逻辑反转的原因是默认行为是带后缀显示。)

key 参数指的是 Locale#relativeTime 对象中的替换键。(例如:s m mm h 等。)

isFuture 参数如果将使用未来后缀/前缀则为真,如果将使用过去前缀/后缀则为假。

相对时间阈值和舍入

使用此插件时,您可以传递一个配置对象来更新其阈值和舍入配置。

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

thresholds 是一个 Array,其中包含 Object,用于定义何时将一个单位视为一分钟、一小时等。例如,默认情况下,超过 45 秒被视为一分钟,超过 22 小时被视为一天,等等。要更改这些,您可以传递一个新的 thresholds,如下所示。

// strict 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' }
]

您也可以添加自己的阈值键并相应地更新语言环境。

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

rounding 是一个 Function,用于在将数字提供给语言环境中指定的相对时间格式字符串之前对其进行处理。要更改这些,您可以传递一个新的 rounding,如下所示。

// Math.round by default
var rounding = Math.floor
← 最小星期几缩写日历 →
Day.js
社区
GitHubGitter🇨🇳 中国镜像站点Sitemap
版权所有 © 2024 Day.js