JavaScriptで月日を取得する場合、通常以下のとおりgetMonth関数、getDay関数を使うと思う。
1 2 3 4 | var now = new Date(); var month = now.getMonth()+1; var day = now.getDate(); |
ただ、この場合取得される値は以下のとおり一桁の数字となる。
1 2 3 4 5 6 | console.log(month); console.log(day); // 現在日時が4/1の場合 // 4 // 1 |
今回はここで取得した値を2桁(04、01)にフォーマットする方法を紹介する。
slice関数を使う
先ほどのコードを以下に修正する。
1 2 3 4 | 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桁にフォーマットした形で取得できるというわけだ。