/**
* 将时间类型转换成字符串
*/
(function(){
var temp=Date.prototype.toString;
Date.prototype.toString=OlFunction.create(temp);
/**
* @param {String} str 用%{控制字符}{长度}控制打印字符: Y-年 M-月 D-日 d-星期几 h-小时 m-分钟 s-秒 如果没有写长度将使用自动长度, 如果长度超出将在前面补0; 例: %Y6-%M2-%D -> 001970-01-1
*/
Date.prototype.toString.addOverload([String],function(str){
var that=this,
d={
Y:that.getFullYear().toString(),
M:(that.getMonth()+1).toString(),
D:that.getDate().toString(),
d:that.getDay().toString(),
h:that.getHours().toString(),
m:that.getMinutes().toString(),
s:that.getSeconds().toString()
}
var i,rtn=[],tstr;
for(i=0;i<str.length;++i){
if(str[i]=='%'){
++i;
if(d[str[i]]!=undefined){
var ti=parseInt(str[i+1]),tempstr=[];
if(isNaN(ti)){
tstr=d[str[i]];
}else{
ti=parseInt(str.slice(i+1))
if(ti>d[str[i]].length){
do{
tempstr.push('0');
--ti;
}while(ti>d[str[i]].length)
}
tempstr.push(d[str[i]].slice(d[str[i]].length-ti));
i+=ti.toString().length;
tstr=tempstr.join('');
}
// }else if(str[i]=='%'){
// tstr='%'
}else{
tstr='%'+str[i];
}
}else{
tstr=str[i];
}
rtn.push(tstr);
}
return rtn.join('');
},"用%{控制字符}{长度}控制打印字符: Y-年 M-月 D-日 d-星期几 h-小时 m-分钟 s-秒 如果没有写长度将使用自动长度; 例: %Y-%M2-%D -> 1970-01-1");
})();
使用例2 重载Date的toString函数 |