計算自然月、指定自然月某一天、獲取前一天和后一天、判斷閏年、月初、月末最后一天日期,代碼如下:
//時間格式化
functionFormatData(Data){
varnow=Data;
varyear=now.getFullYear();//年
varmonth=now.getMonth() +1;//月
varday=now.getDate();//日
varclock=year+"-";
if(month<10)
clock+="0";
clock+=month+"-";
if(day<10)
clock+="0";
clock+=day;
return(clock);
}
/**
* 獲取上一個月月初
*
* @date 格式為yyyy-mm-dd的日期,如:2014-01-25
*/
functiongetEarlyDay(date) {
vararr=date.split('-');
varyear=arr[0];//獲取當前日期的年份
varmonth=arr[1];//獲取當前日期的月份
varday=arr[2];//獲取當前日期的日
vardays=newDate(year,month,0);
days=days.getDate();//獲取當前日期中月的天數
varyear2=year;
varmonth2=parseInt(month) -1;
if(month2==0) {//如果是1月份,則取上一年的12月份
year2=parseInt(year2) -1;
month2=12;
}
varday2=day;
vardays2=newDate(year2,month2,0);
days2=days2.getDate();
if(day2>days2) {//如果原來日期大于上一月的日期,則取當月的最大日期。比如3月的30日,在2月中沒有30
day2=days2;
}
if(month2<10) {
month2='0'+month2;//月份填補成2位。
}
varEarly=year2+'-'+month2+'-'+"01";
returnEarly;
}
/**
* 求月末
*
* @date 格式為yyyy-mm-dd的日期,如:2014-01-25
*/
functiongetMonthEndDay(date) {
vararr=date.split('-');
varyear=arr[0];//獲取當前日期的年份
varmonth=arr[1];//獲取當前日期的月份
varday=arr[2];//獲取當前日期的日
vardays=newDate(year,month,0);
days=days.getDate();//獲取當前日期中月的天數
varyear2=year;
varmonth2=parseInt(month) -1;
if(month2==0) {//如果是1月份,則取上一年的12月份
year2=parseInt(year2) -1;
month2=12;
}
varday2=day;
vardays2=newDate(year2,month2,0);
days2=days2.getDate();
if(day2>days2) {//如果原來日期大于上一月的日期,則取當月的最大日期。比如3月的30日,在2月中沒有30
day2=days2;
}
if(month2<10) {
month2='0'+month2;//月份填補成2位。
}
//讀取日期自動回減一
if(month2==4||month2==6||month2==9||month2==11){
day2=30
}elseif(month2==2){
if(isLeapYear(year)){
day=29;
}else{
day2=28;
}
}else{
day2=31;
}
varEarly=year2+'-'+month2+'-'+day2;
returnEarly;
}
//JS判斷閏年代碼
functionisLeapYear(Year) {
????????if(((Year%4)==0) && ((Year%100)!=0) || ((Year%400)==0)) {
????????????????return(true);
????????}else{
????????????????return(false);
?????????}
}