永发信息网

Javascript 中的日期运算

答案:1  悬赏:10  手机版
解决时间 2021-04-28 01:27
  • 提问者网友:轻浮
  • 2021-04-27 01:23

<script>
function DateAdd(interval,number,date)
{

switch(interval)
{
case "y" : {
date.setFullYear(date.getFullYear()+number);
return date;
break;
}
case "q" : {
date.setMonth(date.getMonth()+number*3);
return date;
break;
}
case "m" : {
date.setMonth(date.getMonth()+number);
return date;
break;
}
case "w" : {
date.setDate(date.getDate()+number*7);
return date;
break;
}
case "d" : {
date.setDate(date.getDate()+number);
return date;
break;
}
case "hh" : {
date.setHours(date.getHours()+number);
return date;
break;
}
case "mm" : {
date.setMinutes(date.getMinutes()+number);
return date;
break;
}
case "ss" : {
date.setSeconds(date.getSeconds()+number);
return date;
break;
}
default : {
date.setDate(d.getDate()+number);
return date;
break;
}
}
}
</script>

这个方法可以实现在一个日期增加N年、N月等,

但有些特殊的日期,如2009-11-30,

如果加上3个月后,结果就是2010-02-30,

但系统会自动转成2010-03-02或2010-03-03。

我想要的是2010年2月的最后一天,这样的特殊日期些我该怎么搞?

最佳答案
  • 五星知识达人网友:十鸦
  • 2021-04-27 02:28
用加完之后的月份a减之前的月份,加上12,
用这个值模除12,如果结果比number大,就给a继续减一个月,然后取这个月的最后一天。
希望有用:)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯