🍩

JavaScriptでゼロパディングする

2021/05/31に公開1

日付の表示で1桁の月や日の場合に、0109のように0埋めして表示したいときのメモ。

「JavaScript 日時 0埋め」で検索するとよく出てくるsliceを使うもの

Date().getMonth()で取得した月に0をつけてslice(-2)で右から2文字を取得すればよいというもの。

  • 1桁月の場合、05となりそこからslice()で右から2文字を取得するので、05が取得できる
  • 2桁月の場合、012となりそこからslice()で右から2文字を取得するので、12が取得できる
const monthNum1 = new Date(2021,5).getMonth() + 1;
const monthNum2 = new Date(2021,11).getMonth() + 1;

console.log(('0' + monthNum1).slice(-2));
console.log(('0' + monthNum2).slice(-2));

ちょっとパッと見でわかりにくい気がする。

padStartを使う

個人的には上記より直感的で好みだったのでこちらを採用しました。

const monthNum1 = new Date(2021,5).getMonth() + 1;
const monthNum2 = new Date(2021,11).getMonth() + 1;

console.log(monthNum1.toString().padStart(2, "0")); // 05
console.log(monthNum2.toString().padStart(2, "0")); // 12

参考

Discussion

shinobe179shinobe179

これmonthNum1は5(05)じゃなくて6(06)じゃありませんか? 仕様を誤解していました、ご放念ください。