【www.bbyears.com--js教程】
下面我总结了一下,写了一个js方法,主要解决:某个日期+多少月多少天=某个日期的问题。至于,某个日期-某个日期=多少天 代码如下 复制代码
//解决IE下得到时间为NaN的情况
function parseISO8601(dateStringInRange) {
var isoExp = /^s*(d{4})-(dd)-(dd)s*$/,
date = new Date(NaN), month,
parts = isoExp.exec(dateStringInRange);
if(parts) {
month = +parts[2];
date.setFullYear(parts[1], month - 1, parts[3]);
if(month != date.getMonth() + 1) {
date.setTime(NaN);
}
}
return date;
}
var change_date = function(dates,months,days) {
var datestr = parseISO8601(dates);
// 参数表示在当前日期下要增加的天数
var now = new Date(datestr);
if(months != 0){
now.setMonth(now.getMonth() + months);
}
now.setDate((now.getDate()-1) + 1 * days);
var year = now.getFullYear();
if(months != 0){
var month = now.getMonth()+1;
}else{
var month = now.getMonth()+1;
}
var day = now.getDate();
if (month < 10) {
month = "0" + month;
}
if (day < 10) {
day = "0" + day;
}
return year + "-" + month + "-" + day;
};
var n = change_date("2012-12-01",12,32);
alert(n);
javascript中日期的加减运算.如今天+80天
例子
代码如下 复制代码
<script>
function DateAdd(interval,number,date)
{
/*
*--------------- DateAdd(interval,number,date) -----------------
* DateAdd(interval,number,date)
* 功能:实现VBScript的DateAdd功能.
* 参数:interval,字符串表达式,表示要添加的时间间隔.
* 参数:number,数值表达式,表示要添加的时间间隔的个数.
* 参数:date,时间对象.
* 返回:新的时间对象.
* var now = new Date();
* var newDate = DateAdd( "d ",5,now);
* author:wanghr100(灰豆宝宝.net)
* update:2004-5-28 11:46
*--------------- DateAdd(interval,number,date) -----------------
*/
switch(interval)
{
case "y " : {
date.setFullYear(date.getFullYear()+number);
return date;
break;
}
case "q " : {
date.setMonth(date.getMonth()+number*3);
return date;
break;
}
case "m " : {
date.setMonth(date.getMonth()+number);
return date;
break;
}
case "w " : {
date.setDate(date.getDate()+number*7);
return date;
break;
}
case "d " : {
date.setDate(date.getDate()+number);
return date;
break;
}
case "h " : {
date.setHours(date.getHours()+number);
return date;
break;
}
case "m " : {
date.setMinutes(date.getMinutes()+number);
return date;
break;
}
case "s " : {
date.setSeconds(date.getSeconds()+number);
return date;
break;
}
default : {
date.setDate(d.getDate()+number);
return date;
break;
}
}
}
var now = new Date();
//加五天.
var newDate = DateAdd( "d ",5,now);
alert(newDate.toLocaleDateString())
//加两个月.
newDate = DateAdd( "m ",2,now);
alert(newDate.toLocaleDateString())
//加一年
newDate = DateAdd( "y ",1,now);
alert(newDate.toLocaleDateString())
</script>