Day.js は組み込みの Date.prototype
を変更する代わりに Dayjs
オブジェクトと呼ばれる Date オブジェクトのラッパーを作成します。
Dayjs
オブジェクトは不変 (immutable) です。すなわち、すべての API 操作は新しい Dayjs
オブジェクトを返します。
- API Reference
- Parsing
- Get and Set
- Manipulating
- Displaying
- Format
.format(stringWithTokens: string)
- Difference
.diff(compared: Dayjs, unit?: string, float?: boolean)
- Unix Timestamp (milliseconds)
.valueOf()
- Unix Timestamp (seconds)
.unix()
- UTC Offset (minutes)
.utcOffset()
- Days in the Month
.daysInMonth()
- As Javascript Date
.toDate()
- As JSON
.toJSON()
- As ISO 8601 String
.toISOString()
- As String
.toString()
- Format
- Query
- UTC
- Plugin APIs
パラメータなしで実行すると現在の日付と時刻を持った新しいDayjs
オブジェクトを返します。
dayjs()
Day.js は他の日付フォーマットもパースします。
ISO 8601 形式
dayjs('2018-04-04T16:00:00.000Z')
dayjs(new Date(2018, 8, 18))
Unix タイムスタンプ(Unix エポックのミリ秒)からDayjs
オブジェクトを返します。
dayjs(1318781876406)
Unix タイムスタンプ(Unix エポックの秒)からDayjs
オブジェクトを返します。
dayjs.unix(1318781876)
dayjs.unix(1318781876.721)
dayjs("12-25-1995", "MM-DD-YYYY")
といった独自フォーマットのパースはCustomParseFormat
で利用できます。
Dayjs
オブジェクトを複製して返します。
dayjs().clone()
dayjs(dayjs('2019-01-25')) // Dayjsオブジェクトをコンストラクタに渡しても複製されます
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
オブジェクトから数値
を返します。
dayjs().get('month') // `0`始まり
dayjs().get('day')
単位 | ショートハンド | 説明 |
---|---|---|
date |
月の日ひち | |
day |
d |
曜日(日曜日は0 、土曜日は6 ) |
month |
M |
月(1 月は0 、12 月は11 ) |
year |
y |
年 |
hour |
h |
時 |
minute |
m |
分 |
second |
s |
秒 |
millisecond |
ms |
ミリ秒 |
変更を適応したDayjs
オブジェクトを返します。
dayjs().set('date', 1)
dayjs().set('month', 3) // 4月
dayjs().set('second', 30)
様々な方法でDayjs
オブジェクトを操作できます。
dayjs('2019-01-25')
.add(1, 'day')
.subtract(1, 'year')
.toString() // Fri, 26 Jan 2018 00:00:00 GMT
指定した時間を追加したDayjs
オブジェクトを複製して返します。
dayjs().add(7, 'day')
指定した時間を引いたDayjs
オブジェクトを複製して返します。
dayjs().subtract(7, 'year')
指定した単位の開始時点に設定されたDayjs
オブジェクトを複製して返します。
dayjs().startOf('week') // locale の `weekStart` に依存
指定した単位の終了時点に設定されたDayjs
オブジェクトを複製して返します。
dayjs().endOf('month')
フォーマットされた日付の文字列を返します。
文字をエスケープするにはブラケットで囲みます。(例 [A][MM]
)
dayjs().format() // ISO8601形式で、端数秒なしの現在の日時。例 '2020-04-02T08:02:17-05:00'
dayjs('2019-01-25').format('[YYYY] YYYY-MM-DDTHH:mm:ssZ[Z]') // 'YYYY 2019-01-25T00:00:00-02:00Z'
dayjs('2019-01-25').format('DD/MM/YYYY') // '25/01/2019'
フォーマット | 出力 | 説明 |
---|---|---|
YY |
18 | 2 桁の年 |
YYYY |
2018 | 4 桁の年 |
M |
1-12 | 1 始まりの月 |
MM |
01-12 | 1 始まりの 2 桁の月 |
MMM |
Jan-Dec | 月の略称 |
MMMM |
January-December | 月の正式名 |
D |
1-31 | 月ごとの日にち |
DD |
01-31 | 月ごとの 2 桁の日にち |
d |
0-6 | 0 で日曜日から始まる曜日 |
dd |
Su-Sa | 最も短い曜日の略称 |
ddd |
Sun-Sat | 曜日の略称 |
dddd |
Sunday-Saturday | 曜日名 |
H |
0-23 | 時間 |
HH |
00-23 | 2 桁の時間 |
h |
1-12 | 12 時制の時間 |
hh |
01-12 | 12 時制で 2 桁の時間 |
m |
0-59 | 分 |
mm |
00-59 | 2 桁の分 |
s |
0-59 | 秒 |
ss |
00-59 | 2 桁の秒 |
SSS |
000-999 | 3 桁のミリ秒 |
Z |
+05:00 | UTC からのオフセット |
ZZ |
+0500 | UTC からの 2 桁のオフセット |
A |
AM PM | 午前と午後(大文字) |
a |
am pm | 午前と午後(小文字) |
- 利用可能な他のフォーマット
Q Do k kk X x ...
in pluginAdvancedFormat
- ローカライズのフォーマットオプション
L LT LTS ...
in pluginLocalizedFormat
2 つのDayjs
オブジェクトの差分を指定した単位で数値で返します。
const date1 = dayjs('2019-01-25')
const date2 = dayjs('2018-06-05')
date1.diff(date2) // 20214000000 default milliseconds
date1.diff(date2, 'month') // 7
date1.diff(date2, 'month', true) // 7.645161290322581
date1.diff(date2, 'day') // 233
Dayjs
オブジェクトの Unix エポックからのミリ秒を数値で返します。
dayjs('2019-01-25').valueOf() // 1548381600000
Dayjs
オブジェクトの Unix エポックからの秒を数値で返します。
dayjs('2019-01-25').unix() // 1548381600
Dayjs
オブジェクトの UTC オフセットを分単位の数値で返します。
dayjs().utcOffset()
Dayjs
オブジェクトの月の日数を数値で返します。
dayjs('2019-01-25').daysInMonth() // 31
Dayjs
オブジェクトをパースして複製したネイティブのDate
オブジェクトを返します。
dayjs('2019-01-25').toDate()
Dayjs
オブジェクトの日付を ISO8601 形式にして文字列で返します。
dayjs('2019-01-25').toJSON() // '2019-01-25T02:00:00.000Z'
Dayjs
オブジェクトの日付を ISO8601 形式にして文字列で返します。
dayjs('2019-01-25').toISOString() // '2019-01-25T02:00:00.000Z'
日付を文字列で返します。
dayjs('2019-01-25').toString() // 'Fri, 25 Jan 2019 02:00:00 GMT'
Dayjs
オブジェクトの日付が、引数に与えた他のDayjs
オブジェクトの日付より前かどうかの真偽値を返します。
dayjs().isBefore(dayjs()) // false
dayjs().isBefore(dayjs(), 'year') // false
Dayjs
オブジェクトの日付が、引数に与えた他のDayjs
オブジェクトの日付と同じかどうかの真偽値を返します。
dayjs().isSame(dayjs()) // true
dayjs().isSame(dayjs(), 'year') // true
Dayjs
オブジェクトの日付が、引数に与えた他のDayjs
オブジェクトの日付より後かどうかの真偽値を返します。
dayjs().isAfter(dayjs()) // false
dayjs().isAfter(dayjs(), 'year') // false
引数に与えた変数がDayjs
オブジェクトかどうかの真偽値を返します。
dayjs.isDayjs(dayjs()) // true
dayjs.isDayjs(new Date()) // false
instanceof
オペレータでも同じように動作します。
dayjs() instanceof dayjs // true
UTC でパースや表示をしたい場合は、UTC
プラグインの.utc
.local
.isUTC
で行えます。
.from
.to
.fromNow
.toNow
で相対時間が得られます。
プラグイン RelativeTime
.isLeapYear
で閏年かどうかが得られます。
プラグイン IsLeapYear
.week
でその年における週数が得られます。
プラグイン WeekOfYear
.weekday
でロケールに対応した曜日の取得、設定ができます。
プラグイン WeekDay
.isoWeeksInYear
でその年の週数が得られます。
プラグイン IsoWeeksInYear
.isSameOrAfter
で日付が別の日付と同じかそれより後であるかを得られます。
プラグイン IsSameOrAfter
.isSameOrBefore
で日付が別の日付と同じかそれより前であるかを得られます。
プラグイン IsSameOrBefore
.isBetween
で他の 2 つの日付の間であるかどうかを得られます。
プラグイン IsBetween
.quarter
で年の四半期のいつかが得られます。
プラグイン QuarterOfYear
.toArray
でパラメータの配列が得られます。
プラグイン ToArray
.toObject
でパラメータをキーに持ったオブジェクトが得られます。
プラグイン ToObject
.min
.max
で与えた複数のDayjs
インスタンスの中から最小もしくは最大のものが得られます。
プラグイン MinMax
.calendar
で与えた日付のカレンダー上の情報が得られます。
プラグイン Calendar