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

<!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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值