以下のコードを変更して、日付が現在の状態である 2013 年 1 月 30 日ではなく 2013 年 1 月 30 日になるようにするにはどうすればよいでしょうか?
var d = new Date();
var xdate = [d.getDate(), d.getMonth()+1, d.getFullYear()].join('/');
以下のコードを変更して、日付が現在の状態である 2013 年 1 月 30 日ではなく 2013 年 1 月 30 日になるようにするにはどうすればよいでしょうか?
var d = new Date();
var xdate = [d.getDate(), d.getMonth()+1, d.getFullYear()].join('/');
短い(左)パディング関数は次のとおりです。
function zeroPad(nr,base,chr){
var len = (String(base||10).length - String(nr).length)+1;
return len > 0? new Array(len).join(chr||'0')+nr : nr;
}
//usage
zeroPad(2); //=> '02'
zeroPad(22); //=> '22'
zeroPad(22,100); //=> '022'
zeroPad(22,100,'x'); //=> 'x22'
この汎用パッド関数を使用します。
function pad(input,char,width,onleft) {
input = ""+input;
var add = new Array(input.length-width+1).join(char);
if( onleft) return add+input;
else return input+add;
}
コードに適用すると、次のようになります。
var d = new Date();
var xdate = [d.getDate(), pad(d.getMonth()+1,"0",2,true), d.getFullYear()].join("/");
var xdate = [d.getDate(), ('0' + (d.getMonth()+1)).slice(-2), d.getFullYear()].join('/');
試す:
var d = new Date(),
m = d.getMonth()+1,
xdate = [d.getDate(), (m < 10) ? '0' + m : m, d.getFullYear()].join('/');
月が 10 未満かどうかを確認してから 0 を追加することでこれを行う方法がいくつかありますが、私はそれが好きではありません。 /archives/date-time-formatこれは書式設定を完全に処理する優れたライブラリです