3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【JavaScript】日付をYYYY-MM-DDの文字列にする

Last updated at Posted at 2025-01-05

結論

変換方法としては、以下の3種類があります。

  1. toLocaleDateString('ja-JP')から/-に置換する
  2. toLocaleDateString("sv-SE")を利用する
  3. 独自実装を利用

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;
}

最後に

お読みいただきありがとうございました。
より良い方法等がありましたらコメントいただけますと幸いです。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?