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 (default: 'milliseconds'), 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 |
+5: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
date1.diff(date2, 'month') // 7
date1.diff(date2, 'month', true) // 7.645161290322581
date1.diff(date2, 'day') // 233Dayjsオブジェクトの Unix エポックからのミリ秒を数値で返します。
dayjs('2019-01-25').valueOf() // 1548381600000Dayjsオブジェクトの Unix エポックからの秒を数値で返します。
dayjs('2019-01-25').unix() // 1548381600Dayjsオブジェクトの UTC オフセットを分単位の数値で返します。
dayjs().utcOffset()Dayjsオブジェクトの月の日数を数値で返します。
dayjs('2019-01-25').daysInMonth() // 31Dayjsオブジェクトをパースして複製したネイティブの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') // falseDayjsオブジェクトの日付が、引数に与えた他のDayjsオブジェクトの日付と同じかどうかの真偽値を返します。
dayjs().isSame(dayjs()) // true
dayjs().isSame(dayjs(), 'year') // trueDayjsオブジェクトの日付が、引数に与えた他のDayjsオブジェクトの日付より後かどうかの真偽値を返します。
dayjs().isAfter(dayjs()) // false
dayjs().isAfter(dayjs(), 'year') // false引数に与えた変数がDayjsオブジェクトかどうかの真偽値を返します。
dayjs.isDayjs(dayjs()) // true
dayjs.isDayjs(new Date()) // falseinstanceofオペレータでも同じように動作します。
dayjs() instanceof dayjs // trueUTC でパースや表示をしたい場合は、UTCプラグインの.utc .local .isUTC で行えます。
.from .to .fromNow .toNow で相対時間が得られます。
プラグイン RelativeTime
.isLeapYear で閏年かどうかが得られます。
プラグイン IsLeapYear
.week でその年における週数が得られます。
プラグイン WeekOfYear
.weekday to get or set locale aware day of the week
plugin WeekDay
.isoWeeksInYear でその年の週数が得られます。
プラグイン IsoWeeksInYear
.isSameOrAfter で日付が別の日付と同じかそれより後であるかを得られます。
プラグイン IsSameOrAfter
.isSameOrBeforeで日付が別の日付と同じかそれより前であるかを得られます。
プラグイン IsSameOrBefore
.isBetweenで他の 2 つの日付の間であるかどうかを得られます。
プラグイン IsBetween
.quarterで年の四半期のいつかが得られます。
プラグイン QuarterOfYear
.toArrayでパラメータの配列が得られます。
プラグイン ToArray
.toObjectでパラメータをキーに持ったオブジェクトが得られます。
プラグイン ToObject
.min .maxで与えた複数のDayjsインスタンスの中から最小もしくは最大のものが得られます。
プラグイン MinMax
.calendarで与えた日付のカレンダー上の情報が得られます。
プラグイン Calendar