XTools ロゴ
XTools
Blog
/
Day.js プレイグラウンド・書式リファレンスMoment.js プレイグラウンド・Day.js 移行日付計算・Unix 時間変換タイムゾーン変換

© 2026 XTools. 無断複写·転載を禁じます。

プライバシーポリシーお問い合わせ

    Moment.js プレイグラウンド・Day.js 移行

    Moment.js の書式をその場で試し、Day.js での書き方と並べて比較
    • ファイルは端末の外に出ません
    • ブラウザ内で処理
    • 無料・登録不要・透かしなし

    Moment.js はメンテナンスモードに入っており、開発チーム自身も新しいプロジェクトにはモダンなライブラリを勧めています。Day.js はほぼ同じ API を約 2 KB で提供しているため、各セクションで Day.js での書き方も並べて示しています。

    Moment のプロジェクト状況Day.js のプレイグラウンドを開く

    Moment.js を読み込み中…

    フォーマットを試す

    出力
     

    書式トークン一覧

    トークンをクリックするとフォーマット文字列に挿入されます。例は基準日時とロケールで表示しています。

    トークン例意味
    年・四半期
    4 桁の年
    2 桁の年
    四半期(1–4)
    四半期(序数)
    月
    月(1–12)
    月(序数)
    月(2 桁)
    月の短縮名
    月の名前
    日(月内・年内)
    日
    日(序数)
    日(2 桁)
    年間通算日
    年間通算日(3 桁)
    曜日
    曜日番号(0 = 日曜)
    曜日(最短)
    曜日(短縮)
    曜日(完全)
    曜日番号(ロケール基準)
    ISO 曜日番号(1 = 月曜)
    週
    年内の週番号(ロケール基準)
    週番号(序数)
    週番号(2 桁)
    ISO 週番号
    ISO 週番号(2 桁)
    週の属する年(ロケール基準)
    ISO 週の属する年
    時
    時、0–23
    時、00–23
    時、1–12
    時、01–12
    時、1–24
    時、01–24
    分・秒
    分
    分(2 桁)
    秒
    秒(2 桁)
    1/10 秒
    1/100 秒
    ミリ秒
    午前 / 午後
    AM / PM(午前 / 午後)
    am / pm(小文字)
    タイムゾーン
    UTC オフセット、±HH:mm
    UTC オフセット、±HHmm
    moment-timezone が必要タイムゾーン略称
    moment-timezone が必要タイムゾーン名
    Unix 時刻
    Unix 秒
    Unix ミリ秒
    ロケール書式
    ロケールの時刻
    ロケールの時刻(秒まで)
    ロケールの数字日付
    ロケールの日付(月名入り)
    ロケールの日付と時刻
    ロケールの日付・曜日・時刻
    短い数字日付
    短い日付(月名入り)
    短い日付と時刻
    短い日付・曜日・時刻
    エスケープ
    角かっこ内の文字はそのまま出力

    パースを試す

    空欄なら 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')

    期間(Duration)

    よく使う書き方

    日常的な処理を結果付きで紹介します。「試す」で下のコードランナーに読み込めます。

    Moment のオブジェクトはミュータブルで、add() は元のオブジェクトを変更します。Day.js は操作ごとに新しいオブジェクトを返すので、結果を代入し直してください。
    やりたいことMoment.js
    現在時刻をフォーマット
    moment().format('YYYY-MM-DD HH:mm:ss')
    →
    日数を足す
    moment('2023-01-01').add(1, 'days').format('YYYY-MM-DD')
    →
    今からどれくらいか
    moment().subtract(7, 'days').fromNow()
    →
    今月の初日
    moment().startOf('month').format('YYYY-MM-DD')
    →
    今年の最終日
    moment().endOf('year').format('YYYY-MM-DD')
    →
    今週の始まり(ロケール依存)
    moment().startOf('week').format('YYYY-MM-DD ddd')
    →
    2 つの日付の日数差
    moment().diff(moment('2022-01-01'), 'days')
    →
    今月の日数
    moment().daysInMonth()
    →
    四半期
    moment().quarter()
    →
    カレンダー表記
    moment().add(1, 'days').calendar()
    →
    2 つの日付の間にあるか
    moment('2024-12-31').isBetween('2024-01-01', '2025-01-01')
    →
    今日かどうか
    moment().isSame(moment(), 'day')
    →
    うるう年かどうか
    moment('2024-01-01').isLeapYear()
    →
    日付を厳密に検証
    moment('2023-02-30', 'YYYY-MM-DD', true).isValid()
    →
    独自の書式を解析
    moment('13/10/2026 14:30', 'DD/MM/YYYY HH:mm').format()
    →
    Unix タイムスタンプ(秒)
    moment().unix()
    →
    現在の UTC 時刻
    moment.utc().format()
    →
    別のタイムゾーンの時刻
    moment-timezone が必要
    期間を自然な文章に
    moment.duration(90, 'minutes').humanize()
    →
    月末に 1 か月足す
    moment('2026-01-31').add(1, 'months').format('YYYY-MM-DD')
    →
    代入せずに add() を呼ぶ
    (() => { const d = moment('2026-01-01'); d.add(1, 'days'); return d.format('YYYY-MM-DD') })()
    →

    コードランナー

    moment を使った式を入力すると、その場でブラウザ内で実行します。上の書き方で使うプラグインはすべて有効で、上で選んだロケールが適用されます。

    結果

    プレイグラウンドの設定

    関連ツール

    • Day.js プレイグラウンド・書式リファレンス
    • 日付計算・Unix 時間変換
    • タイムゾーン変換

    Moment.js プレイグラウンド・Day.js 移行の使い方

    Moment.js のフォーマット、パース、相対時間、期間を試せます。各結果の横に Day.js の結果を並べて違いに印を付けるので、移行前に何が変わるか確認できます。どちらもブラウザ内で動きます。

    1. 1

      「基準日時」と「ロケール」を設定し、moment.utc() を使うコードなら「UTC として扱う」をオンにします。

    2. 2

      「フォーマット文字列」に書式を入力すると、「出力」に Moment と Day.js の結果が表示され、「同じ出力」か「出力が異なります」と示されます。

    3. 3

      「書式トークン一覧」で Day.js にないトークンやプラグインが必要なトークンを確認し、クリックして書式に挿入します。

    4. 4

      「パースを試す」「相対時間」「期間(Duration)」で 2 つのライブラリを比べます。Day.js の結果が異なる箇所は色付きで表示されます。

    5. 5

      「よく使う書き方」で日常的な処理の両方の書き方を確認し、「試す」で Moment 版を「コードランナー」で実行します。

    よくある質問

    Moment.js はまだメンテナンスされていますか?

    Moment.js はメンテナンスモードに入っており、開発チーム自身も新規プロジェクトにはモダンなライブラリを勧めています。ページ上部の案内から、Moment のプロジェクト状況と Day.js のプレイグラウンドに移動できます。

    Day.js に移行するとき、よく問題になる点は?

    一番はミュータビリティです。Moment の add() は元のオブジェクトを変更しますが、Day.js は新しいオブジェクトを返すので結果を代入し直す必要があります。また Day.js では多くの機能にプラグインが必要で、各書き方に必要なプラグインを記載しています。

    Day.js に対応するもののない書式トークンは?

    Qo、Mo、DDD、DDDD、e、E、S、SS です。「書式トークン一覧」ではこれらを Day.js 非対応と表示し、それ以外は必要なプラグインを示しています。

    Moment で z と zzz が効かないのはなぜですか?

    タイムゾーン名には別途 moment-timezone が必要で、このページでは読み込んでいないため、一覧に「moment-timezone が必要」と表示されます。Day.js では timezone プラグインで対応しています。

    比較しているのはどのバージョンですか?

    Moment.js と Day.js の正確なバージョンは、設定パネルの下に表示されています。

    コードはサーバーに送信されますか?

    いいえ。どちらのライブラリもロケールファイルもこのページ内に読み込まれ、入力した内容はブラウザ内で実行されます。