LoginSignup
1
1

More than 1 year has passed since last update.

JavaScript 日付をYYYYMMDD, YYYY/MM/DD など区切り文字指定してフォーマットする関数

Posted at

状況によって区切り文字を変えたい

JavaScriptで日付をフォーマットする際に

  • YYYYMMDD (区切り文字なし)
  • YYYY/MM/DD (スラッシュ区切り)
  • YYYY-MM-DD (ハイフン区切り)
  • YYYY.MM.DD (ドット区切り)

など状況に応じて区切り文字を変えたいときがあります。
そこで区切り文字を可変で指定できるフォーマット関数を作成しました。

こちらの記事を参考にさせていただいております。
月、日のゼロ埋め(1 → 01) なども解説頂いております。
日付をYYYY-MM-DDの書式で返す関数 (JavaScript)

日付フォーマットする際に区切り文字を指定できる関数

以下のような、dateオブジェクト区切り文字を引数で渡す関数になっています。
区切り文字の引数sepはデフォルトで""(空文字)にしているので
指定しないと、YYYYMMDD形式(空文字区切り)で返ってきます。

日付フォーマット関数 区切り文字指定可
function formatDate(date, sep="") {
  const yyyy = date.getFullYear();
  const mm = ('00' + (date.getMonth()+1)).slice(-2);
  const dd = ('00' + date.getDate()).slice(-2);

  return `${yyyy}${sep}${mm}${sep}${dd}`;
}

以下のように関数を呼び出します。

日付フォーマット関数呼び出し方
const dateTime = new Date();
const date = new Date(dateTime.getFullYear(), dateTime.getMonth(), dateTime.getDate());

// 区切り文字なし
const dateStr = formatDate(date);
console.log(dateStr);
// 20220914

// ハイフン区切り
const dateStrHyphen = formatDate(date, "-");
console.log(dateStrHyphen);
// 2022-09-14

// スラッシュ区切り
const dateStrSlash = formatDate(date, "/");
console.log(dateStrSlash);
// 2022/09/14

アロー関数で1行で書く

アロー関数版
const formatDate = (date, sep="") => date.getFullYear() + sep + ('00' + (date.getMonth()+1)).slice(-2) + sep +('00' + date.getDate()).slice(-2);

アロー関数でも従来の関数の使い方と一緒です。

const formatDate = (date, sep="") => date.getFullYear() + sep + ('00' + (date.getMonth()+1)).slice(-2) + sep +('00' + date.getDate()).slice(-2);

const dateTime = new Date();
const date = new Date(dateTime.getFullYear(), dateTime.getMonth(), dateTime.getDate());

// 区切り文字なし
const dateStr = formatDate(date);
console.log(dateStr);
// 20220914

// ハイフン区切り
const dateStrHyphen = formatDate(date, "-");
console.log(dateStrHyphen);
// 2022-09-14

// スラッシュ区切り
const dateStrSlash = formatDate(date, "/");
console.log(dateStrSlash);
// 2022/09/14
1
1
1

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
1
1