Skip to content
Day.js

简体中文

English
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

简体中文

English
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

主题

Sidebar Navigation

安装

Node.js

浏览器

TypeScript

下载

解析

当前时间

字符串

字符串 + 格式

Unix 时间戳 (毫秒)

Unix 时间戳(秒)

Date 对象

对象

数组

UTC

Day.js 克隆

验证

获取和设置

毫秒

秒

分钟

小时

日期

星期几

星期几(本地化感知)

ISO 星期几

一年中的天数

一年中的第几周

ISO 周数

月份

季度

年

周年份

ISO 周年份

一年中的 ISO 周数

获取

设置

最大值(最晚的时间)

最小值(最早的时间)

操作

添加时间

减去时间

时间单位的起点

时间单位的结束

本地化时间

UTC

UTC 偏移量

展示

格式化

从现在开始的时间

从 X 开始的时间

距离当前时间的相对时间

相对于 X 的时间

日历时间

差异

Unix 时间戳(毫秒)

Unix 时间戳

当月天数

转换为 JavaScript Date

转换为数组

转换为 JSON

ISO 8601 字符串格式

转换为对象

转换为字符串

查询方法

是否早于

是否相同

是否晚于

是否相同或更早

是否相同或之后

是否在两个时间之间

是否为 Day.js 对象

闰年判断

i18n (国际化)

在 NodeJS 中加载区域设置

在浏览器中加载区域设置

全局更改语言环境

局部更改区域设置

获取当前 Day.js 实例的语言环境

列出当前区域设置的月份和星期

访问区域设置相关的功能

插件

在 Node.js 中加载插件

在浏览器中加载插件

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

时区

ToArray

ToObject

UpdateLocale

UTC

weekOfYear

WeekYear

星期几

自定义

月份名称

月份缩写

星期几名称

星期缩写

最小星期缩写

相对时间

日历

时长

创建

克隆

转换为易读时间

格式化

毫秒

秒

分钟

小时

天

周

月份

年份

添加时间

减少时间

使用 Duration 和 Diff

以指定单位获取时长

获取指定时间单位的时长

转换为 JSON

判断是否为 Duration 对象

作为 ISO 8601 字符串

语言环境

时区

在指定时区中解析

转换为时区

获取用户时区

设置默认时区

页面导航

字符串 + 格式 ​

如果你知道输入字符串的格式,你可以使用该格式来解析日期。

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

如果你不确定输入字符串的确切格式,但知道它可能是多种格式之一,可以使用格式数组。 Day.js 将尝试使用数组中的每种格式解析日期,直到成功为止。

js
dayjs('12-25-2001', ['YYYY', 'YYYY-MM-DD'], 'es', true);

所有可用的解析标记列表 ​

InputExampleDescription
YY01两位数年份
YYYY2001四位数年份
M1-12月份,从 1 开始
MM01-12月份,2 位数字
MMMJan-Dec月份名称缩写
MMMMJanuary-December月份名称全称
D1-31日期
DD01-31日期,2 位数字
H0-23小时 (24 小时制)
HH00-23小时 (24 小时制),2 位数字
h1-12小时 (12 小时制)
hh01-12小时 (12 小时制),2 位数字
m0-59分钟
mm00-59分钟,2 位数字
s0-59秒
ss00-59秒,2 位数字
S0-9毫秒(百位),1 位数字
SS00-99毫秒(十位),2 位数字
SSS000-999毫秒,3 位数字
Z-05:00UTC 偏移
ZZ-0500紧凑格式的 UTC 偏移,2 位数字
AAM PM上午或下午(大写)
aam pm上午或下午(小写)
Do1st... 31st带序数的日期
X1410715640.579Unix 时间戳 (秒)
x1410715640579Unix 毫秒时间戳

与 Moment.js 的差异 ​

titleparametersdayjsmoment
溢出无效日期('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'

所有支持的分隔符字符列表: ​

-_:.,()/

Pager
上一页字符串
下一页Unix 时间戳 (毫秒)

基于 MIT 许可证 发布。

版权所有 (c) 2020 iamkun

https://day.js.org/docs/en/parse/string-format

基于 MIT 许可证 发布。

版权所有 (c) 2020 iamkun