トークンをクリックするとフォーマット文字列に挿入されます。例は基準日時とロケールで表示しています。
| トークン | 例 | 意味 | Day.js |
|---|---|---|---|
| 年・四半期 | |||
| 4 桁の年 | 標準 | ||
| 2 桁の年 | 標準 | ||
| 四半期(1–4) | advancedFormat | ||
| Day.js は非対応 | 四半期(序数) | Day.js は非対応 | |
| 月 | |||
| 月(1–12) | 標準 | ||
| Day.js は非対応 | 月(序数) | Day.js は非対応 | |
| 月(2 桁) | 標準 | ||
| 月の短縮名 | 標準 | ||
| 月の名前 | 標準 | ||
| 日(月内・年内) | |||
| 日 | 標準 | ||
| 日(序数) | advancedFormat | ||
| 日(2 桁) | 標準 | ||
| Day.js は非対応 | 年間通算日 | Day.js は非対応 | |
| Day.js は非対応 | 年間通算日(3 桁) | Day.js は非対応 | |
| 曜日 | |||
| 曜日番号(0 = 日曜) | 標準 | ||
| 曜日(最短) | 標準 | ||
| 曜日(短縮) | 標準 | ||
| 曜日(完全) | 標準 | ||
| Day.js は非対応 | 曜日番号(ロケール基準) | Day.js は非対応 | |
| Day.js は非対応 | ISO 曜日番号(1 = 月曜) | Day.js は非対応 | |
| 週 | |||
| 年内の週番号(ロケール基準) | advancedFormat + weekOfYear | ||
| 週番号(序数) | advancedFormat + weekOfYear | ||
| 週番号(2 桁) | advancedFormat + weekOfYear | ||
| ISO 週番号 | advancedFormat + isoWeek | ||
| ISO 週番号(2 桁) | advancedFormat + isoWeek | ||
| 週の属する年(ロケール基準) | advancedFormat + weekYear | ||
| ISO 週の属する年 | advancedFormat + isoWeek | ||
| 時 | |||
| 時、0–23 | 標準 | ||
| 時、00–23 | 標準 | ||
| 時、1–12 | 標準 | ||
| 時、01–12 | 標準 | ||
| 時、1–24 | advancedFormat | ||
| 時、01–24 | advancedFormat | ||
| 分・秒 | |||
| 分 | 標準 | ||
| 分(2 桁) | 標準 | ||
| 秒 | 標準 | ||
| 秒(2 桁) | 標準 | ||
| Day.js は非対応 | 1/10 秒 | Day.js は非対応 | |
| Day.js は非対応 | 1/100 秒 | Day.js は非対応 | |
| ミリ秒 | 標準 | ||
| 午前 / 午後 | |||
| AM / PM(午前 / 午後) | 標準 | ||
| am / pm(小文字) | 標準 | ||
| タイムゾーン | |||
| UTC オフセット、±HH:mm | 標準 | ||
| UTC オフセット、±HHmm | 標準 | ||
| タイムゾーン略称 | advancedFormat + timezone | ||
| タイムゾーン名 | advancedFormat + timezone | ||
| Unix 時刻 | |||
| Unix 秒 | advancedFormat | ||
| Unix ミリ秒 | advancedFormat | ||
| ロケール書式 | |||
| ロケールの時刻 | localizedFormat | ||
| ロケールの時刻(秒まで) | localizedFormat | ||
| ロケールの数字日付 | localizedFormat | ||
| ロケールの日付(月名入り) | localizedFormat | ||
| ロケールの日付と時刻 | localizedFormat | ||
| ロケールの日付・曜日・時刻 | localizedFormat | ||
| 短い数字日付 | localizedFormat | ||
| 短い日付(月名入り) | localizedFormat | ||
| 短い日付と時刻 | localizedFormat | ||
| 短い日付・曜日・時刻 | localizedFormat | ||
| エスケープ | |||
| 角かっこ内の文字はそのまま出力 | 標準 | ||
空欄なら ISO 8601 として解析します。
各行は基準日時をずらし、from() と calendar() で基準との関係を表します。
| ずらし | from(ref) | calendar(ref) |
|---|---|---|
| .add(-45, 'second') | ||
| .add(-10, 'minute') | ||
| .add(-3, 'hour') | ||
| .add(-1, 'day') | ||
| .add(-5, 'day') | ||
| .add(-3, 'month') | ||
| .add(-2, 'year') | ||
| .add(30, 'minute') | ||
| .add(2, 'day') | ||
| .add(1, 'month') |
日常的な処理を結果付きで紹介します。「試す」で下のコードランナーに読み込めます。
| やりたいこと | Day.js |
|---|---|
現在時刻をフォーマット | dayjs().format('YYYY-MM-DD HH:mm:ss')→ |
日数を足す | dayjs('2023-01-01').add(1, 'day').format('YYYY-MM-DD')→ |
今からどれくらいか Day.js: relativeTime | dayjs().subtract(7, 'day').fromNow()→ |
今月の初日 | dayjs().startOf('month').format('YYYY-MM-DD')→ |
今年の最終日 | dayjs().endOf('year').format('YYYY-MM-DD')→ |
今週の始まり(ロケール依存) | dayjs().startOf('week').format('YYYY-MM-DD ddd')→ |
2 つの日付の日数差 | dayjs().diff(dayjs('2022-01-01'), 'day')→ |
今月の日数 | dayjs().daysInMonth()→ |
四半期 Day.js: quarterOfYear | dayjs().quarter()→ |
カレンダー表記 Day.js: calendar | dayjs().add(1, 'day').calendar()→ |
2 つの日付の間にあるか Day.js: isBetween | dayjs('2024-12-31').isBetween('2024-01-01', '2025-01-01')→ |
今日かどうか Day.js: isToday | dayjs().isToday()→ |
うるう年かどうか Day.js: isLeapYear | dayjs('2024-01-01').isLeapYear()→ |
日付を厳密に検証 Day.js: customParseFormat | dayjs('2023-02-30', 'YYYY-MM-DD', true).isValid()→ |
独自の書式を解析 Day.js: customParseFormat | dayjs('13/10/2026 14:30', 'DD/MM/YYYY HH:mm').format()→ |
Unix タイムスタンプ(秒) | dayjs().unix()→ |
現在の UTC 時刻 Day.js: utc | dayjs.utc().format()→ |
別のタイムゾーンの時刻 Day.js: utc + timezone + advancedFormat | dayjs().tz('America/New_York').format('YYYY-MM-DD HH:mm z')→ |
期間を自然な文章に Day.js: duration + relativeTime | dayjs.duration(90, 'minutes').humanize()→ |
月末に 1 か月足す | dayjs('2026-01-31').add(1, 'month').format('YYYY-MM-DD')→ |
代入せずに add() を呼ぶ | (() => { const d = dayjs('2026-01-01'); d.add(1, 'day'); return d.format('YYYY-MM-DD') })()→ |
dayjs を使った式を入力すると、その場でブラウザ内で実行します。上の書き方で使うプラグインはすべて有効で、上で選んだロケールが適用されます。
指定した日時で Day.js のフォーマット、パース、相対時間、期間をその場で試せます。結果には必要な import と dayjs.extend() のコードが付き、書式トークン一覧で必要なプラグインがわかります。
「基準日時」を設定し(または「現在」を押し)、「ロケール」を選びます。dayjs.utc() を使うコードなら「UTC として扱う」をオンにします。
「フォーマット文字列」に書式を入力するか、よく使う書式をクリックします。「書式トークン一覧」のトークンをクリックするとカーソル位置に挿入されます。
「出力」の下に生成されたコードをコピーします。必要なプラグインの import も含まれています。
「パースを試す」で日付文字列と想定する書式を入力し、「厳密モード」をオンにすると存在しない日付を弾けます。
「よく使う書き方」で「試す」を押すとコードが「コードランナー」に読み込まれ、編集した結果がすぐに表示されます。
「書式トークン一覧」の Day.js 列に「標準」かプラグイン名が表示されます。たとえば Do・Q・X は advancedFormat、L・LLLL は localizedFormat が必要です。生成コードには対応する import と dayjs.extend() が自動で入ります。
このページではすべてのプラグインを読み込んでいます。Day.js のコアは知っているトークンしか置き換えないため、advancedFormat なしでは Q はそのまま残り、Do は日の数字の後ろに o が付いた形になります。一覧に示されたプラグインを extend してください。DDD や E など一部の Moment のトークンは Day.js にそもそもありません。
厳密モードでない場合、Day.js は存在しない日を翌月に繰り越します。「厳密モード」(customParseFormat プラグインで第 3 引数に true を渡す形)をオンにすると、同じ入力が無効と判定されます。
角かっこで囲みます。たとえば [Week] W, GGGG は Week という単語の後に ISO 週番号と年を出力します。
いいえ。Day.js 本体、プラグイン、ロケールファイルはこのページ内で動き、入力した式はブラウザ内で実行されます。よく使う書き方で使うプラグインはすべて有効です。
よく使う書き方の「別のタイムゾーンの時刻」で、utc と timezone プラグインを使った dayjs().tz() の例を確認できます。複数のゾーンを並べて比べるなら「タイムゾーン変換」が便利です。