JavaScript
🚨 RangeError: Invalid time value
new Date()に無効な日付文字列を渡している
😰 こんな症状
不正なフォーマットの日付文字列でDateオブジェクトを作ろうとしてエラーになる。日付処理で起きるよ。
🔍 原因
new Date()に無効な日付文字列を渡しているよ。ブラウザによって解釈が異なるフォーマット(例: '2024/1/1'はSafariで無効)や、存在しない日付(2月30日等)を渡すとInvalid Dateになるんだ。
❌ エラーが起きるコード
// new Date()に無効な日付文字列を渡している。フォーマットが正しくない。 ✅ 直し方
1. 日付文字列のフォーマットを「YYYY-MM-DD」形式(ISO 8601)にする。 2. または個別に年月日を指定する:new Date(2024, 0, 1)(月は0始まり)。 3. date-fnsやdayjsなどのライブラリを使うとパースが安全。
✅ 修正後のコード
// 日付文字列のフォーマットを「YYYY-MM-DD」形式にする。または個別に年月日を指定する。 この解決法は役立ちましたか?
🔗 関連するエラー
- RangeError: Invalid array length — 配列の長さに不正な値を指定している
- SyntaxError: Invalid left-hand side in assignment — 代入できないものに代入しようとしている
- Uncaught ReferenceError: xxx is not defined — 変数・関数名のタイポ
- Uncaught TypeError: Cannot read properties of null — getElementById の id が存在しない
- 404 Not Found(スクリプトが読み込まれない) — script の src パスが間違っている
🔗 別カテゴリの関連エラー
📖 この問題を学べるレッスン
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- JavaScriptとは?初心者向けにわかりやすく解説 — 変数・関数・イベントの基本
- JavaScriptでボタンクリックを動かす方法 — ボタンクリック時の動作を解説