結論
変換方法としては、以下の3種類があります。
-
toLocaleDateString('ja-JP')
から/
を-
に置換する -
toLocaleDateString("sv-SE")
を利用する - 独自実装を利用
1. toLocaleDateString('ja-JP')
から/
を-
に置換する
toLocaleDateString('ja-JP')
でYYYY/MM/DDの文字列に変換されることを利用します。
const formatedDateString = date.toLocaleDateString('ja-JP').replaceAll('/','-');
-
の箇所を空文字にしてYYYYMMDDの文字列にすることも可能です。
個人的には一番読みやすい実装だと思います。
2. toLocaleDateString('sv-SE')
を利用する
'sv-SE'
はスウェーデンのフォーマットです。
toLocaleDateString('sv-SE')
→YYYY-MM-DD
toLocaleString('sv-SE')
→ YYYY-MM-DD HH:MM:SS
と変換されるらしいです。
const formatedDateString = date.toLocaleDateString('sv-SE'); // YYYY-MM-DDに変換
一つだけの関数で明瞭ですが、チームでの開発であればコメントで補足した方が良いかと思います。
3. 独自実装
昔から良くあるやつです。古い環境で上記メソッドが使えない場合に活用するかと思います。
date.getFullYear()
date.getMonth()
date.getDate()
をこね回します。
※試しにChatGPTに書かせてみました。
function formatDate(date) {
var year = date.getFullYear();
var month = date.getMonth() + 1; // getMonth()は0から始まるので1を足す
var day = date.getDate();
// 月と日が1桁の場合、先頭に0を追加
if (month < 10) {
month = '0' + month;
}
if (day < 10) {
day = '0' + day;
}
return year + '-' + month + '-' + day;
}
最後に
お読みいただきありがとうございました。
より良い方法等がありましたらコメントいただけますと幸いです。