计算自然月、指定自然月某一天、获取前一天和后一天、判断闰年、月初、月末最后一天日期,代码如下:
//时间格式化
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);
}
}