js 时间增加函数

原文: http://kwon.iteye.com/blog/1158965

<script type="text/javascript">
function printLine(s){
document.write(s,"<br />");
}
function timeParse(timeString,pattern){
var date=new Date();
var match=timeString.match(pattern);
date.setYear(parseInt(match[1],10));
date.setMonth(parseInt(match[2],10)-1);
date.setDate(parseInt(match[3],10));
date.setHours(parseInt(match[4],10));
date.setMinutes(parseInt(match[5],10));
date.setSeconds(0);
return date;
}
Date.prototype.addTime=function(timeSpan){
this.setYear(this.getYear()+timeSpan.years);
this.setMonth(this.getMonth()+timeSpan.months);
this.setDate(this.getDate()+timeSpan.days);
this.setHours(this.getHours()+timeSpan.hours);
this.setMinutes(this.getMinutes()+timeSpan.minutes);
}
Date.prototype.toString=function(){
return this.getYear()+"-"
+(this.getMonth()+1)+"-"
+this.getDate()+" "
+this.getHours()+":"
+this.getMinutes();
}
function timeSpanParse(timeSpanString,pattern){
var match=timeSpanString.match(pattern);
var y=match[1]==""?0:parseInt(match[1]);
var mon=match[2]==""?0:parseInt(match[2]);
var d=match[3]==""?0:parseInt(match[3]);
var h=match[4]==""?0:parseInt(match[4]);
var m=match[5]==""?0:parseInt(match[5]);
return {years:y,months:mon,days:d,hours:h,minutes:m};
}
var reg_time=/^(\d{1,4})\-(\d{1,2})\-(\d{1,2}) (\d{1,2}):(\d{1,2})$/;
var date=timeParse("2008-8-8 09:00",reg_time);
printLine(date);
var reg_timeSpan=/^(?:(\d+)年)?(?:(\d+)个?月)?(?:(\d+)天)?(?:(\d+)小时)?(?:(\d+)分钟?)?$/;


var timeSpan=timeSpanParse("10分",reg_timeSpan);
date.addTime(timeSpan);
printLine("增加10分钟后:"+date);


timeSpan=timeSpanParse("3小时10分",reg_timeSpan);
date.addTime(timeSpan);
printLine("增加3小时10分后:"+date);


timeSpan=timeSpanParse("2天3小时10分",reg_timeSpan);
date.addTime(timeSpan);
printLine("增加2天1小时5分后:"+date);


timeSpan=timeSpanParse("1个月1天1小时1分",reg_timeSpan);
date.addTime(timeSpan);
printLine("增加1个月1天1小时1分后:"+date);

timeSpan=timeSpanParse("2年1小时1分钟",reg_timeSpan);
date.addTime(timeSpan);
printLine("增加2年1小时1分钟后:"+date);
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值