用Javascript實現(xiàn)(經(jīng)測試答案正確):
創(chuàng)新互聯(lián)專注于那曲企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,電子商務(wù)商城網(wǎng)站建設(shè)。那曲網(wǎng)站建設(shè)公司,為那曲等地區(qū)提供建站服務(wù)。全流程定制開發(fā),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
html
head
meta http-equiv="Content-Type" content="text/html; charset=uft-8"
script language="javascript"
function window_onload()
{
var LSTR_Date = "20090115";
//(日期表示只有這一種格式,不支持民國年)
var LSTR_AddDays =45;
var LSTR_DateType = "YYYYMMDD";
alert(AddDate(LSTR_Date,LSTR_AddDays,LSTR_DateType));
}
function AddDate(LISTR_Date,LISTR_AddDays,LISTR_DateType)
{
var LSTR_YY=0;
var LSTR_MM=0;
var LSTR_DD=0;
var LINT_FLAG=0;
//檢查日期格式為 "YYYYMMDD" 或
//"MMDDYYYY" 且長度為8碼
if((LISTR_DateType!="YYYYMMDD") (LISTR_DateType!="MMDDYYYY") (LISTR_Date.length!=8))
return false;
if(LISTR_DateType=="MMDDYYYY")
LISTR_Date=LISTR_Date.substr(4,4)+LISTR_Date.substr(0,4);
LSTR_YY=parseInt(LISTR_Date.substr(0,4),10);
LSTR_MM=parseInt(LISTR_Date.substr(4,2),10);
LSTR_DD=parseInt(LISTR_Date.substr(6,2),10)+parseInt(LISTR_AddDays,10);
while(LINT_FLAG==0)
{
switch (LSTR_MM)
{
case 2:
if ((LSTR_YY % 4) != 0)
{
if (LSTR_DD 28)
{
LSTR_DD -=28;
LSTR_MM =3;
}
else
{
LINT_FLAG=1;
}
}
else
{
if (((LSTR_YY % 100) == 0) ((LSTR_YY % 400) != 0))
{
if (LSTR_DD 28)
{
LSTR_DD -=28;
LSTR_MM =3;
}
else
{
LINT_FLAG=1;
}
}
else
{
if (LSTR_DD 29)
{
LSTR_DD -=29;
LSTR_MM =3;
}
else
{
LINT_FLAG=1;
}
}
}
break;
case 4:
case 6:
case 9:
case 11:
if (LSTR_DD 30)
{
LSTR_DD -=30;
LSTR_MM +=1;
}
else{LINT_FLAG=1;}
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
if (LSTR_DD 31)
{
LSTR_DD -=31;
LSTR_MM +=1;
}
else
{
LINT_FLAG=1;
}
break;
case 12:
if (LSTR_DD 31)
{
LSTR_DD -=31;
LSTR_MM=1;
LSTR_YY +=1;
}
else
{
LINT_FLAG=1;
}
break;
default:
return;
break;
}
}
if (LSTR_MM10)
{
LSTR_MM="0" +LSTR_MM;
}
if (LSTR_DD10)
{
LSTR_DD="0" +LSTR_DD;
}
if(LISTR_DateType=="MMDDYYYY")
return LSTR_MM+""+LSTR_DD+""+LSTR_YY+"";
else
return LSTR_YY+""+LSTR_MM+""+LSTR_DD+"";
}
/script
/head
body onload="window_onload();"
/body
/html
如題,開始查了查js的使用文檔,但沒發(fā)現(xiàn)可以直接用的函數(shù),于是就想自己寫函數(shù)來著,這就要涉及到每個月天數(shù)的判斷,如果是2月份的話,還要涉及到閏年的判斷,雖然不復(fù)雜但我想js應(yīng)該不會這么低級,于是查了下資料,終于有了如下重大發(fā)現(xiàn),以在某個日期上加減天數(shù)來說,其實只要調(diào)用Date對象的setDate()函數(shù)就可以了,具體方法如下:
function addDate(date,days){
var d=new Date(date);
d.setDate(d.getDate()+days);
var m=d.getMonth()+1;
return d.getFullYear()+'-'+m+'-'+d.getDate();
}
其中,date參數(shù)是要進(jìn)行加減的日期,days參數(shù)是要加減的天數(shù),如果往前算就傳入負(fù)數(shù),往后算就傳入正數(shù),如果是要進(jìn)行月份的加減,就調(diào)用setMonth()和getMonth()就可以了,需要注意的是返回的月份是從0開始計算的,也就是說返回的月份要比實際月份少一個月,因此要相應(yīng)的加上1。
var today=new Date(); // 獲取今天時間
today.setDate(today.getDate() + 7); // 系統(tǒng)會自動轉(zhuǎn)換
下面是date類提供的三個你可能生成字符串用到的函數(shù):
getDate() 從 Date 對象返回一個月中的某一天 (1 ~ 31)。
getMonth() 從 Date 對象返回月份 (0 ~ 11)。
getFullYear() 從 Date 對象以四位數(shù)字返回年份。
js中沒有如同C#中的AddDays的方法,
所以重寫了Date對象的prototype,擴(kuò)展了增加日期的方法,
代碼如下:
Date.prototype.Format = function(fmt)
{
//author:
meizz
var o
=
{
"M+" : this.getMonth() + 1, //月份
"d+" : this.getDate(), //日
"h+" : this.getHours(), //小時
"m+" : this.getMinutes(), //分
"s+" : this.getSeconds(), //秒
"q+" : Math.floor((this.getMonth() + 3) / 3), //季度
"S" : this.getMilliseconds() //毫秒
};
if
(/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 -
RegExp.$1.length));
for (var k
in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) :
(("00" + o[k]).substr(("" + o[k]).length)));
return
fmt;
}
Date.prototype.addDays = function(d)
{
this.setDate(this.getDate() + d);
};
Date.prototype.addWeeks = function(w)
{
this.addDays(w * 7);
};
Date.prototype.addMonths= function(m)
{
var d =
this.getDate();
this.setMonth(this.getMonth() + m);
if
(this.getDate() d)
this.setDate(0);
};
Date.prototype.addYears = function(y)
{
var m =
this.getMonth();
this.setFullYear(this.getFullYear() + y);
if (m
this.getMonth())
{
this.setDate(0);
}
};
var now = new Date();
now.addDays(1);//加減日期操作
alert(now.Format("yyyy-MM-dd"));
網(wǎng)頁名稱:javascript日期加減,js中時間加減
分享URL:http://m.rwnh.cn/article28/dscoojp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、品牌網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站設(shè)計、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)