JavaScriptで月日を取得する場合、通常以下のとおりgetMonth関数、getDay関数を使うと思う。
var now = new Date();
var month = now.getMonth()+1;
var day = now.getDate();
ただ、この場合取得される値は以下のとおり一桁の数字となる。
console.log(month);
console.log(day);
// 現在日時が4/1の場合
// 4
// 1
今回はここで取得した値を2桁(04、01)にフォーマットする方法を紹介する。
slice関数を使う
先ほどのコードを以下に修正する。
var now = new Date();
var month = ("0" + (now.getMonth()+1)).slice(-2)
var day = ("0" + now.getDate()).slice(-2)
取得した月日の先頭に0を付与し、slice関数で後ろから2文字を取得している。
例えば取得した月が12だった場合、まず0を付与し012に変換してから後ろの2文字(12)を取得する。
月が4だった場合は、4 -> 04として後ろ2文字(04)を取得するので、一桁月でも2桁にフォーマットした形で取得できるというわけだ。