Moment.js プレイグラウンド
Moment.js日時APIを試験的に使用できるインタラクティブプレイグラウンド。日付のフォーマット、解析、操作をリアルタイム出力で実行できます
入力
出力
Readme
Moment.jsとは?
Moment.jsは、日付の解析、検証、操作、フォーマットに広く使用されているJavaScriptライブラリです。最新の代替手段が登場する前は、Moment.jsはJavaScriptアプリケーションにおける日付処理の事実上の標準でした。シンプルでチェーン可能なAPIを提供し、日付の操作を直感的かつ簡単にします。date-fnsやLuxonなどの新しいライブラリが存在しますが、Moment.jsは依然としてレガシーコードベースで広く使用されており、バグ修正のために積極的に保守されています。既存のプロジェクトでこれに依存する開発者にとって、Moment.jsの理解は不可欠です。
なぜ日付操作ライブラリを使用するのか?
JavaScriptのネイティブなDateオブジェクトは、使用が非常に困難です。ブラウザ間で動作が一貫していない、月のインデックスが混乱している(1-12ではなく0-11)、フォーマットオプションが限定的、タイムゾーンのサポートが組み込まれていません。Moment.jsのような日付ライブラリは、一貫性のある十分に文書化されたAPIを提供することでこれらの問題を解決します。夏時間の切り替え、うるう年、ロケール固有のフォーマットなどのエッジケースを自動的に処理し、開発者がエラーが発生しやすい日付ロジックをゼロから書く手間を省きます。
ツールの説明
Moment.js Playgroundは、Moment.jsライブラリを試験するためのインタラクティブなブラウザベースの環境です。エディタでJavaScriptコードを直接記述して実行でき、Moment.jsとMoment Timezoneへの完全なアクセスが可能です。Playgroundは入力時にコードを自動的に実行し(デバウンス付き)、すべてのconsole出力を下部のターミナルスタイルのパネルに表示します。開発環境をセットアップすることなく、Moment.jsの学習、日付フォーマット文字列のテスト、日付計算のデバッグ、時間関連ロジックのプロトタイピングに最適です。
例
現在の日付をフォーマットする:
const now = moment();
console.log(now.format("MMMM Do, YYYY"));
// 出力: December 30th, 2025
console.log(now.format("dddd, h:mm A"));
// 出力: Monday, 3:45 PM異なる日付形式を解析する:
const date1 = moment("2025-12-25", "YYYY-MM-DD");
const date2 = moment("25/12/2025", "DD/MM/YYYY");
const date3 = moment("Dec 25, 2025", "MMM D, YYYY");
console.log(date1.format("dddd")); // Thursday
console.log(date2.isValid()); // true
console.log(date3.month()); // 11 (0-indexed)相対時間を計算する:
const past = moment().subtract(3, "days");
const future = moment().add(2, "weeks");
console.log(past.fromNow()); // 3 days ago
console.log(future.fromNow()); // in 14 days
console.log(past.from(future)); // 17 days ago日付の算術演算:
const date = moment("2025-01-15");
const nextMonth = date.clone().add(1, "month");
const lastWeek = date.clone().subtract(1, "week");
const endOfMonth = date.clone().endOf("month");
console.log(nextMonth.format("YYYY-MM-DD")); // 2025-02-15
console.log(lastWeek.format("YYYY-MM-DD")); // 2025-01-08
console.log(endOfMonth.format("YYYY-MM-DD")); // 2025-01-31期間を操作する:
const start = moment("2025-01-01");
const end = moment("2025-12-31");
const duration = moment.duration(end.diff(start));
console.log(duration.asDays() + " days"); // 364 days
console.log(duration.asWeeks() + " weeks"); // 52 weeks
console.log(duration.humanize()); // a year日付を比較する:
const date1 = moment("2025-06-15");
const date2 = moment("2025-12-25");
console.log(date1.isBefore(date2)); // true
console.log(date1.isAfter(date2)); // false
console.log(date1.isSame(date2, "year")); // true
console.log(date1.isBetween("2025-01-01", "2025-08-01")); // trueタイムゾーンを操作する:
const now = moment();
console.log(now.tz("America/New_York").format("h:mm A z"));
console.log(now.tz("Europe/London").format("h:mm A z"));
console.log(now.tz("Asia/Tokyo").format("h:mm A z"));機能
- 完全なMoment.jsライブラリ: 解析、フォーマット、操作、比較を含むすべてのMoment.js関数にアクセス可能
- タイムゾーンサポート: 世界中のタイムゾーンで作業するためにMoment Timezoneが事前にロードされています
- ライブコード実行: 入力時にコードが自動的に実行され、スマートなデバウンス機能付き
- 組み込みターミナル: ブラウザの開発者ツールを開くことなく、console出力をすぐに表示
- 構文ハイライト: コードの可読性向上のためのJavaScript構文ハイライト
- エラーハンドリング: ランタイムエラーはターミナル出力に明確に表示されます
ユースケース
- Moment.jsの学習: プロジェクトセットアップなしでAPIを試験し、すぐに結果を確認
- フォーマット文字列のテスト: 異なるフォーマットトークンを試して、必要な日付出力を実現
- 日付計算のデバッグ: アプリケーションに実装する前に複雑な日付演算をテスト
- タイムゾーン変換: 異なるタイムゾーン間の時間をすばやく変換
- レガシーコード保守: 既存アプリケーションを保守する際にMoment.jsコードスニペットをテスト
一般的なフォーマットトークン
| トークン | 説明 | 例 |
|---|---|---|
YYYY |
4桁の年 | 2025 |
YY |
2桁の年 | 25 |
MM |
2桁の月 | 01-12 |
MMM |
短い月名 | Jan, Feb |
MMMM |
完全な月名 | January |
DD |
2桁の日 | 01-31 |
Do |
序数付きの日 | 1st, 2nd |
dddd |
完全な曜日名 | Monday |
ddd |
短い曜日名 | Mon |
HH |
24時間形式の時間 | 00-23 |
hh |
12時間形式の時間 | 01-12 |
mm |
分 | 00-59 |
ss |
秒 | 00-59 |
A |
AM/PM(大文字) | AM, PM |
a |
am/pm(小文字) | am, pm |
z |
タイムゾーン略語 | EST, PST |
Z |
タイムゾーンオフセット | +05:00 |
一般的なメソッドリファレンス
| メソッド | 説明 | 例 |
|---|---|---|
moment() |
現在を作成 | moment() |
format(string) |
文字列にフォーマット | moment().format("YYYY-MM-DD") |
add(n, unit) |
時間を追加 | moment().add(7, "days") |
subtract(n, unit) |
時間を減算 | moment().subtract(1, "month") |
startOf(unit) |
ユニットの開始 | moment().startOf("week") |
endOf(unit) |
ユニットの終了 | moment().endOf("month") |
fromNow() |
相対時間 | moment("2025-01-01").fromNow() |
diff(moment) |
差分 | momentA.diff(momentB, "days") |
isBefore(moment) |
前か判定 | momentA.isBefore(momentB) |
isAfter(moment) |
後か判定 | momentA.isAfter(momentB) |
isSame(moment, unit) |
同じか判定 | momentA.isSame(momentB, "month") |
isValid() |
有効性を確認 | moment("invalid").isValid() |
clone() |
コピーを作成 | moment().clone() |
tz(zone) |
タイムゾーン変換 | moment().tz("America/New_York") |
時間単位
Moment.jsは、add、subtract、startOf、endOf、およびdiff操作に対してこれらの時間単位をサポートしています:
years/yquarters/Qmonths/Mweeks/wdays/dhours/hminutes/mseconds/smilliseconds/ms