JavaScript おれおれ Advent Calendar 2011 – 1日目

例えば時刻を表示する事を考えます。

var now = new Date();
var timeText = [
  now.getHours(),
  now.getMinutes(),
  now.getSeconds(),
  now.getMilliseconds()
  ].join(':');
console.log(timeText);

結果はこう

17:2:27:87

ですが、本当はこう

17:02:27:0087

したいですよね。この先頭をゼロ0で埋めるってのがゼロフィルです。

やり方はいろいろあるんですが、 .slice()に負数を与えるのが綺麗で良いです。

var now = new Date();
var timeText = [
  ("0" + now.getHours()).slice(-2),
  ("0" + now.getMinutes()).slice(-2),
  ("0" + now.getSeconds()).slice(-2),
  ("000" + now.getMilliseconds()).slice(-4)
  ].join(':');
console.log(timeText);

.slice()に負数を与えると、後ろから取得できるわけです。

"12345".slice(-3)  // => "345"