Dateちょっと便利に拡張

Date.prototype.format = function(){
  	function z2d(n){//名前適当。1ケタの場合 10の位に 0 を表示
    	         return (n < 10) ? '0'+n : n;
  	}
  	var y = (this.getYear() < 2000 ? this.getYear() + 1900 : this.getYear());
  	var m = z2d(this.getMonth()+1);
  	var d = z2d(this.getDate());
  	var h = z2d(this.getHours());
  	var mi = z2d(this.getMinutes());
  	var s = z2d(this.getSeconds());
  	return [[y,m,d].join('/'),[h,mi,s].join(':')].join(' ')
}
Date.prototype.at = function(time){
	var p = {};
	time.replace(/^(?d{1,2}):?(?d{1,2})?:?(?d{1,2})?$/,function(m,$1,$2,$3){
		p.hours = $1-0 || 0;
		p.minutes = $2-0 || 0;
		p.seconds = $3-0 || 0;
	})
	var h = this.getHours();
	var mi = this.getMinutes();
	var s = this.getSeconds();
	var diff = (s - p.seconds) + (mi - p.minutes) * 60 + (h - p.hours) * 3600;
	this.setTime(this.getTime() - diff * 1000)
	return this;
}
var from_perl = 1173970264;// perlでのtime値。単位は秒
var d = new Date().setTime(from_perl * 1000) //Javascriptではミリ秒を使う
alert(d.format());
alert(new Date().at("12").format()); // 12 o'clock
alert(new Date().at('1:25:70').format()); //1:26:10

ってtohoho見たらsetHours,setMinutes,setSecondsあるって書いてる、、、orz
ま、いいや。