简介

Day.js 是一个轻量的处理时间和日期的 JavaScript 库,和 Moment.js 的 API 设计保持完全一样. 如果您曾经用过 Moment.js, 那么您已经知道如何使用 Day.js

安装

npm install dayjs --save
import dayjs from 'dayjs'
// 或者 CommonJS
// var dayjs = require('dayjs');
dayjs().format()

API

Dayjs 并没有改变或覆盖 Javascript 原生的 Date.prototype, 而是创造了一个全新的包含 Javascript Date 对象的 Dayjs 的对象。

Dayjs 对象是不可变的, 所有的 API 操作都将返回一个新的 Dayjs 对象。


如果没有特别说明,Day.js 的返回值都是新的 Dayjs 对象。

解析

dayjs() 中传入支持的格式

当前时间

直接运行 dayjs(),得到包含当前时间和日期的 Dayjs 对象。

dayjs()

时间字符串

可以解析传入的一个标准的ISO 8601时间字符串。

dayjs(String)
dayjs('1995-12-25')

Date 对象

可以解析传入的一个 Javascript Date 对象。

dayjs(Date)
dayjs(new Date(2018, 8, 18))

Unix 时间戳 (毫秒)

可以解析传入的一个 Unix 时间戳 (13 位数字)。

dayjs(Number)
dayjs(1318781876406)

Unix 时间戳 (秒)

可以解析传入的一个 Unix 时间戳 (10 位数字)。

dayjs.unix(Number)
dayjs.unix(1318781876)

自定义时间格式

  • 解析自定义时间格式如 dayjs("12-25-1995", "MM-DD-YYYY") 可以使用插件 CustomParseFormat

复制

Dayjs 对象是不可变的,如果您想获得一个对象的拷贝,请执行 .clone()
dayjs() 里传入一个 Dayjs 对象也能实现同样的效果。

dayjs(Dayjs)
dayjs().clone()

验证

  • return Boolean

检测当前 Dayjs 对象是否是一个有效的时间。

dayjs().isValid()

获取+设置

获取和改变日期。

获取或设置年份。

dayjs().year()
dayjs().year(2000)

获取或设置月份。从 0 开始

dayjs().month()
dayjs().month(0)

获取或设置日期。从 1 开始

dayjs().date()
dayjs().date(1)

星期

获取或设置星期。从星期天 0 开始

dayjs().day()
dayjs().day(0)

获取或设置小时。

dayjs().hour()
dayjs().hour(12)

获取或设置分钟。

dayjs().minute()
dayjs().minute(59)

获取或设置秒。

dayjs().second()
dayjs().second(1)

毫秒

获取或设置毫秒。

dayjs().millisecond()
dayjs().millisecond(1)

获取

获取从 Dayjs 对象中取到的信息
传入的单位 (unit) 对大小写不敏感。

dayjs().get(unit : String)
dayjs().get('month') // 从 0 开始
dayjs().get('day')

可用单位

单位 缩写 描述
date 日期
day d 星期几 (星期天 0, 星期六 6)
month M 月 (一月 0, 十二月 11)
year y
hour h
minute m
second s
millisecond ms 毫秒

设置

设置时间

dayjs().set(unit : String, value : Int);
dayjs().set('date', 1);
dayjs().set('month', 3); // 四月
dayjs().set('second', 30);

操作

您可以对 Dayjs 对象如下增加减少之类的操作:

dayjs().startOf('month').add(1, 'day').subtract(1, 'year')

增加

增加时间并返回一个新的 Dayjs() 对象。

dayjs().add(value : Number, unit : String);
dayjs().add(7, 'day');

减少

减少时间并返回一个新的 Dayjs() 对象。

dayjs().subtract(value : Number, unit : String);
dayjs().subtract(7, 'year');

开头时间

返回当前时间的开头时间的 Dayjs() 对象,如月份的第一天。

dayjs().startOf(unit : String);
dayjs().startOf('week'); // 取决于 locale 文件里 `weekStart` 的值

末尾时间

返回当前时间的末尾时间的 Dayjs() 对象,如月份的最后一天。

dayjs().endOf(unit : String);
dayjs().endOf('month');

显示

格式化 Dayjs 对象并展示。

格式化

  • return String

接收一系列的时间日期字符串并替换成相应的值。

dayjs().format(String)
dayjs('2019-01-25').format('[YYYY] YYYY-MM-DDTHH:mm:ssZ[Z]') // 'YYYY 2019-01-25T00:00:00-02:00Z'
dayjs().format('{YYYY} MM-DDTHH:mm:ssZ[Z]') // "{2014} 09-08T08:02:17-05:00Z"

详情如下:

格式 输出 描述
YY 18 两位数的年份
YYYY 2018 四位数的年份
M 1-12 月份,从 1 开始
MM 01-12 月份,两位数
MMM Jan-Dec 简写的月份名称
MMMM January-December 完整的月份名称
D 1-31 月份里的一天
DD 01-31 月份里的一天,两位数
d 0-6 一周中的一天,星期天是 0
dd Su-Sa 最简写的一周中一天的名称
ddd Sun-Sat 简写的一周中一天的名称
dddd Sunday-Saturday 一周中一天的名称
H 0-23 小时
HH 00-23 小时,两位数
h 1-12 小时, 12 小时制
hh 01-12 Hours, 12 小时制, 两位数
m 0-59 分钟
mm 00-59 分钟,两位数
s 0-59
ss 00-59 秒 两位数
SSS 000-999 毫秒 三位数
Z +5:00 UTC 的偏移量
ZZ +0500 UTC 的偏移量,数字前面加上 0
A AM PM
a am pm
  • 更多格式化的选项 Q Do k kk X x ... 可以使用插件 AdvancedFormat
  • 本地化的长日期格式 L LT LTS ... 可以使用插件 LocalizedFormat

时间差

  • return Number

获取两个 Dayjs 对象的时间差,默认毫秒。

const date1 = dayjs('2019-01-25')
const date2 = dayjs('2018-06-05')
date1.diff(date2) // 20214000000
date1.diff(date2, 'month') // 7
date1.diff(date2, 'month', true) // 7.645161290322581
date1.diff(date2, 'day') // 233

Unix 时间戳 (毫秒)

  • return Number

返回 Unix 时间戳 (毫秒)

dayjs().valueOf()

Unix 时间戳 (秒)

  • return Number

返回 Unix 时间戳 (秒)。

dayjs().unix()

UTC 偏移量 (分)

返回 UTC 偏移量 (分)

dayjs().utcOffset()

天数 (月)

  • return Number

返回月份的天数。

dayjs().daysInMonth()

Date 对象

  • return Javascript Date object

返回原生的 Date 对象。

dayjs().toDate()

As JSON

  • return JSON String

当序列化 Dayjs 对象时,会返回 ISO8601 格式的字符串。

dayjs().toJSON() //"2018-08-08T00:00:00.000Z"

ISO 8601 字符串

  • return String

返回 ISO8601 格式的字符串。

dayjs().toISOString()

字符串

  • return String
dayjs().toString()

查询

是否之前

  • return Boolean

检查一个 Dayjs 对象是否在另一个 Dayjs 对象时间之前。

dayjs().isBefore(Dayjs, unit? : String);
dayjs().isBefore(dayjs()); // false
dayjs().isBefore(dayjs(), 'year'); // false

是否相同

  • return Boolean

检查一个 Dayjs 对象是否和另一个 Dayjs 对象时间相同。

dayjs().isSame(Dayjs, unit? : String);
dayjs().isSame(dayjs()); // true
dayjs().isSame(dayjs(), 'year'); // true

是否之后

  • return Boolean

检查一个 Dayjs 对象是否在另一个 Dayjs 对象时间之后。

dayjs().isAfter(Dayjs, unit? : String);
dayjs().isAfter(dayjs()); // false
dayjs().isAfter(dayjs(), 'year'); // false

是否是 Dayjs .isDayjs(compared: any)

返回一个 boolean 验证传入值是否是一个 Dayjs 对象.

dayjs.isDayjs(dayjs()) // true
dayjs.isDayjs(new Date()) // false

也可以使用 instanceof

dayjs() instanceof dayjs // true

UTC

如果想要使用 UTC 模式来解析和展示时间,.utc .local .isUTC 可以使用插件 UTC

插件 APIs

相对时间

.from .to .fromNow .toNow 获得相对时间

插件 RelativeTime

是否是闰年

.isLeapYear 获得是否闰年

插件 IsLeapYear

年中的第几周

.week 获取是第几个周

插件 WeekOfYear

星期

.weekday 来获取或设置当前语言的星期

plugin WeekDay

年中有几周 ISO

.isoWeeksInYear 获得年中有几周

plugin IsoWeeksInYear

是否相同或之后

.isSameOrAfter 返回一个时间和一个时间相同或在一个时间之后

插件 IsSameOrAfter

是否相同或之前

.isSameOrBefore 返回一个时间是否和一个时间相同或在一个时间之前

插件 IsSameOrBefore

是否之间

.isBetween 返回一个时间是否介于两个时间之间

插件 IsBetween

年中第几季度

.quarter 返回年中第几季度

插件 QuarterOfYear

转成数组

.toArray 返回包含时间数值的数组。

插件 ToArray

转成对象

.toObject 返回包含时间数值的对象

插件 ToObject

最小最大

.min .max 比较传入的 dayjs 实例的大小

plugin MinMax

日历时间

.calendar 来显示日历时间

plugin Calendar

更多最新内容参考:https://github.com/iamkun/dayjs/blob/master/docs/zh-cn/README.zh-CN.md

日期时间工具(dayjs)的使用相关推荐

  1. 日期时间工具 -- dayjs

    莫道君行早 更有早行人 DayJs 1.关于dayJs 2.插件安装 3. 部分API展示 3.1 获取某日所属周后面一周的开始.结束日期: 3.2 获取某日所在月的开始.结束日期 1.关于dayJs ...

  2. dateutil 日期计算_日期时间 - 日期时间工具-DateUtil - 《Hutool 参考文档》 - 书栈网 · BookStack...

    日期时间工具-DateUtil 由来 考虑到Java本身对日期时间的支持有限,并且Date和Calendar对象的并存导致各种方法使用混乱和复杂,故使用此工具类做了封装.这其中的封装主要是日期和字符串 ...

  3. 分享一个Joda-Time日期时间工具类

    写在前面 在JDK1.8之前,处理日期和时间的方式比较单一,Java中提供了Calendar来处理日期,但是过程较为繁琐. 但是在JDK1.8之后,Java更新了time包提供了LocalDate,L ...

  4. DateTimeUtils 日期时间工具类 (AS3,Flex3)

    Java代码 package com.lj.utils { import mx.controls.DateField; import mx.controls.dataGridClasses.DataG ...

  5. java 日期时间工具_Java日期时间类工具

    Java日期时间类工具 Java日期时间类 Date类 Java提供的Date类和Calendar类用于处理日期和时间的类,包括创建日期,时间对象,获取系统当前日期,时间 等操作.但Date类无法实现 ...

  6. JDK8新特性:Lambda表达式、Stream流、日期时间工具类

    重要特性: 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值. 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号. 可选的大括号:如果主体包含了一个语句,就不需要大括号. ...

  7. Hutool - 日期时间工具 - DateUtil

    文章目录 获取当前时间 字符串转日期 格式化输出 开始和结束时间 日期时间偏移 获取当前时间 //输出 2022-05-24 23:09:51Date date = DateUtil.date();/ ...

  8. java 日期的工具类_java 日期时间工具类

    package org.apache.pwd.util; import java.text.SimpleDateFormat; import java.util.Calendar; import ja ...

  9. java8的时间工具类_JAVA8日期工具类

    /*** Java8日期时间工具类 * *@authorJourWon * @date 2020/12/13*/ public classLocalDateUtils {/*** 显示年月日时分秒,例 ...

最新文章

  1. 如何实现RESTful Web API的身份验证
  2. 【深度学习】基础知识--CNN:图像分类(上)
  3. .NET Core TDD 前传: 编写易于测试的代码 -- 依赖项
  4. [jstl] forEach标签使用
  5. CSS中link与import差别
  6. 蓝桥杯 ADV-62算法提高 夺宝奇兵(动态规划)
  7. dfs-Bit Compression
  8. ImportError: No module named cv2问题的解决方法(修改python默认版本)
  9. spring学习--完全注解开发(不需要xml)
  10. 地理探测器“运行时系统找不到指定文件”报错
  11. 使用xshell连接阿里云服务器【最近版、无坑系列】
  12. 福彩3D Matlab统计分析,基于ANSYS和遗传算法的3D打印桨叶结构优化设计的制作方法...
  13. 大气压力换算公式_压强单位bar,psi,pa,mpa,kg换算公式
  14. 2A锂电池充电管理芯片,具有恒压/恒流充电模式的充电管理 IC
  15. 计算机学院软件设计比赛作品,计算机学院成功举办首届软件设计大赛
  16. ConstraintLayout实现左中右布局
  17. 机器学习服务文本翻译能力升级,中文直译模型让译文表达更地道!
  18. excapeXML相关
  19. 网页版电子表格控件tmlxSpreadsheet免费下载地址
  20. Java登录界面的实现(注册、登录、背景图片)

热门文章

  1. 怎样覆盖父pom的某个依赖的版本?
  2. UBTC在2019,潮水褪去后的价值凸显
  3. c语言count函数的作用,count通达信什么意思,count是啥意思
  4. Tampermonkey(网页汉化)
  5. 【思否编程公开课】限时免费 网络安全之 Kali 渗透入门实战
  6. Google Chrome浏览器设置默认应用出现两个Google Chrome,及设置默认浏览器打不开第三方应用内链接
  7. MapGIS K9 三维TDE平台中实体的可见与不可见
  8. 【9k字+】第二篇:进阶:掌握 Redis 的一些进阶操作(Linux环境)
  9. php代码执行完整流程介绍
  10. 二进制 算法相关的题目