dayjs 中文文檔

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章