javascript の日付オブジェクトを YYYY/MM/DD hh:mm:ss 形式文字列に変換する

javascript の Date オブジェクトを文字列化すると ctime 形式の文字列に変換されるけれど YYYY/MM/DD hh:mm:ss 形式にしたいこともある。ということで変換処理を書いてみた。

function myDateToString(d) {
 var ns = ["getYear","getMonth","getDate",
  "getHours","getMinutes","getSeconds"];
 var vs = []; // 値の一時保存用配列
 for (var i = 0; i < ns.length; ++i)
  vs.push(d[ns[i]]()); // 関数を名前で参照して呼び出す
 vs[1] += 1; // 月は 0 から始まるため 1 足す
 for (var i = 1; i < vs.length; ++i) {
  vs[i] = "00" + vs[i];
  vs[i] = vs[i].substr(vs[i].length - 2); }

 return vs.slice(0,3).join("/")
  + " " + vs.slice(3,6).join(":");
}

WScript.echo(myDateToString(new Date("2009/1/1")));

javascript ではオブジェクトのメソッドを名前で参照して () で呼び出すなんてヘンタイ的なことができるのでとても楽しい、気がする。