業務でVue.jsのコードを書いている際に、Uncaught (in promise) RangeError: Invalid time value
というエラーに遭遇したので原因と対処法をまとめます。
目次
問題
以下のコードを用いて日付をyyyy/MM/dd HH:mm
形式に変換しようとしていました。
format
関数はdate-fnsというライブラリが用意しているメソッドです。
const formatDateToMinutes = (date: string) => {
return format(new Date(date), 'yyyy/MM/dd HH:mm');
};
しかし、このメソッドを使うとなぜか、Uncaught (in promise) RangeError: Invalid time value
というエラーが出てしまいました。
原因
単純ですが、仮引数のdate
にundefined
を渡していたことが原因でした。
date
がundefined
だとnew Date(date)
はInvalid Date
となり、そのInvalid Date
をformat関数の第1引数として渡したために冒頭のエラーが発生していたようです。
解決方法
仮引数にきちんと値を渡すことで解決できました。
date-fnsのformat関数を使った際に
が発生したときは、仮引数に値が渡せているかを確認しましょう。Uncaught (in promise) RangeError: Invalid time value
おわりに
てっきり仮引数のデータ型の問題だと思ってサーバー側のコードを見に行ったりしていましたが、完全に的外れなことをしていました、、。
コメント