明年的昨天算法 / ios时间格式bug修复

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36771997/article/details/76473739
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>

<script>  

//获取明年的今天

function yestNextyear(today){

//将日期格式换成2017/07/08格式,由于ios下不支持 2017-07-08日期格式,会出现NaN-NaN-NaN乱码,因此进行转换

today = today.replace(/-/g,"/");
var now = new Date(today);
now_Year = now.getFullYear();
now_Month = now.getMonth()+1;
                now_date = now.getDate();
//判断今年是不是闰年         
       now_cond1 = now_Year%4==0;
now_cond2 = now_Year%100!=0;
now_cond3 = now_Year%400==0;
//判断明年是不是闰年
tom_Year = now_Year+1;
tom_cond1 = tom_Year%4==0;
tom_cond2 = tom_Year%100!=0;
tom_cond3 = tom_Year%400==0; 

now_cond= (now_cond1 && now_cond2 )|| now_cond3;
                        tom_cond= (tom_cond1 && tom_cond2 )|| tom_cond3;
if(now_Month > 2){

if(tom_cond){

//如果明年是闰年  由于月份大于2,则经历明年的2月29,所以明年的今天 得加366天,用毫秒数则会自动算出对应的天数,自动算每个月的天数。

next_Mil = +now + 1000*60*60*24*366;
y = new Date(next_Mil);
return y.getFullYear()+"-"+(y.getMonth()+1)+"-"+y.getDate();
}else{
next_Mil = +now + 1000*60*60*24*365;
y = new Date(next_Mil);
return y.getFullYear()+"-"+(y.getMonth()+1)+"-"+y.getDate();
}

}else{

//如果今年是闰年  由于月份小于2,则经历今年的2月29,所以明年的今天 得加366天。

if(now_cond){
next_Mil = +now + 1000*60*60*24*366;
y = new Date(next_Mil);
return y.getFullYear()+"-"+(y.getMonth()+1)+"-"+y.getDate();
}else{
next_Mil = +now + 1000*60*60*24*365;
y = new Date(next_Mil);
return y.getFullYear()+"-"+(y.getMonth()+1)+"-"+y.getDate();
}

}

// 获取下一天

function getNextDay(d){
d = d.replace(/-/g,"/");
       d = new Date(d);
       d = +d + 1000*60*60*24;
       d = new Date(d);
       return d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate();
   }

// 获取上一天
   function yesterday(d){
    d = d.replace(/-/g,"/");
    d = new Date(d);
       d = +d - 1000*60*60*24;
       d = new Date(d);
       return d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate(); 
   }
alert("20150228:/"+getNextDay("2015/02/28")+"/"+yesterday(yestNextyear(getNextDay("2015/02/28"))));
 
alert("20150301:/"+getNextDay("2015/03/01")+"/"+yesterday(yestNextyear(getNextDay("2015/03/01"))));
alert("20160301:/"+getNextDay("2016/03/01")+"/"+yesterday(yestNextyear(getNextDay("2016/03/01"))));
alert("20150229:/"+getNextDay("2016/02/29")+"/"+yesterday(yestNextyear(getNextDay("2016/02/29")))); 
alert("20170301:/"+getNextDay("2017/03/01")+"/"+yesterday(yestNextyear(getNextDay("2017/03/01")))); 
alert("20151231:/"+getNextDay("2015/12/31")+"/"+yesterday(yestNextyear(getNextDay("2015/12/31")))); 
</script>
<body>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/qq_36771997/article/details/76473739
今日推荐