javascript エラー「Uncaught TypeError: xxx.toLocaleDateString is not a function」の解決方法
- 作成日 2022.11.13
- 更新日 2022.11.15
- javascript
- javascript

javascriptで、エラー「Uncaught TypeError: xxx.toLocaleDateString is not a function」が発生した場合の原因と解決方法を記述してます。日付オブジェクト以外に「toLocaleDateString」を使用した場合に発生します。「chrome」や「firefox」や「safari」の各ブラウザのエラーメッセージの画像もキャプチャしてます。
環境
- OS windows11 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 107.0.5304.88
エラー内容
以下の、言語を指定して文字列に日付を変換するコードで発生。
const d = Date.now();
console.log(d); // 1668039940763
const result = d.toLocaleDateString('ja-JP');
エラーメッセージ
Uncaught TypeError: d.toLocaleDateString is not a function
画像

firefox106の場合では、以下のエラーが発生します。
Uncaught TypeError: d.toLocaleDateString is not a function
画像

safari15.5では、以下のエラーとなります。
TypeError: d.toLocaleDateString is not a function. (In 'd.toLocaleDateString('ja-JP')', 'd.toLocaleDateString' is undefined)
画像

原因
有効な日付オブジェクトではない値を指定しているため。
const d = new Date();
console.log(d); // Thu Nov 10 2022 09:38:01 GMT+0900 (日本標準時)
const result = d.toLocaleDateString('ja-JP');
console.log(result); // 2022/11/10
解決方法
「有効な日付オブジェクト」に変換して使用するか、
const d = Date.now();
console.log(d); // 1668039940763
// new Dateに変換
const result = new Date(d).toLocaleDateString('ja-JP');
console.log(result); // 2022/11/10
判定してから使用する
const d = Date.now();
if (typeof d === 'object' && 'toLocaleDateString' in d && d !== null) {
const result = d.toLocaleDateString('ja-JP');
console.log(result);
}else{
console.log('有効な日付ではありません');
}
-
前の記事
mongoDB 現在使用しているDBを取得する 2022.11.13
-
次の記事
Redis コマンドのヘルプ情報を確認する 2022.11.13
コメントを書く