【JS】new Date()で日時指定する際にNaNになる
発生事象
let dt = new Date('2020-04-29 22:00:00')
PCのChromeブラウザでは問題なく日時が表示されました。
しかしながら、スマホで表示を確認すると、「NaN」と表示されてしまいました。
ブラウザ | バージョン |
---|---|
PCのChrome | 81.0.4044.122 |
AndroidのChrome | 80.0.3987.149 |
iOSのChrome | 80.0.3987.95 |
Safari | 13.1 |
このバグはなんだ???🧐
解決策
調査した結果、年月日の「-(ハイフン)」が原因の模様。
let dt = new Date('2020/04/29 22:00:00')
「-(ハイフン)」→「/(スラッシュ)」に変更することで、問題なく表示された。 APIでjsonデータを取得した際に、'YYYY-MM-DD HH:mm:ss' の形式なので以下の処理を追加して対応することとした。
let strDate = '2020/04/29 22:00:00' let dt = new Date(strDate.replace(/-/g,"/"));