JavaScript

JavaScriptでゼロ埋め処理

More than 1 year has passed since last update.

数値型の年、月、日を引数として、yyyymmdd形式で返す関数をプログラマーに依頼したらこんなのが返ってきた。

function yyyymmdd(y, m, d) {
    var ymd = y;
    if (m < 10) {
        ymd += '0' + m;
    } else {
        ymd += m;
    }
    if (d < 10) {
        ymd += '0' + d;
    } else {
        ymd += d;
    }
    return ymd;
}

間違っちゃいないけど…
JavaScriptの初心者向けのサイトとかだと、こういうのがサンプルとして載っていることもなくはないけれど、このコードからはより良いものを作ろうという意思が少しも感じられない。書いていて「もう少しいい感じに書けないかな」とか考えないんだろうか。

というわけで、もう少しいい感じに書いてみたのがコレです。

function yyyymmdd(y, m, d) {
    var y0 = ('0000' + y).slice(-4);
    var m0 = ('00' + m).slice(-2);
    var d0 = ('00' + d).slice(-2);
    return y0 + m0 + d0;
}