JavaScript实现给定时间相加天数的方法


Posted in Javascript onJanuary 25, 2016

本文实例讲述了JavaScript实现给定时间相加天数的方法。分享给大家供大家参考,具体如下:

/**
* 时间相加处理函数
* @param date 需要计算的时间(xxxx-xx-xx)
* @param plusDays 要加的天数(整数)
*/
function calcuDate(date, plusDays) {
  var dateArray = date.split("-");
  var year = +dateArray[0];
  var month = +dateArray[1];
  var day = +dateArray[2];
  var oriDay = day;
  var secondMonthDays = ((year%4 === 0 && year%100 !== 0) || year%400 === 0) ? 29 : 28;
  while(plusDays>0) {
    oriDay = day
    day += plusDays;
    switch(month) {
      case 4:
      case 6:
      case 9:
      case 11:
        if(day > 30) {
          plusDays -= (30-oriDay)+1;
          month++;
          day = 1;
        } else {
          plusDays = 0;
        }
      break;
      case 2:
        if(day > secondMonthDays) {
          plusDays -= (secondMonthDays-oriDay)+1;
          month++;
          day = 1;
        } else {
          plusDays = 0;
        }
      break;
      default:
        if(day > 31) {
          plusDays -= (31-oriDay)+1;
          day = 1;
          month++;
        } else {
          plusDays = 0;
        }
    }
    if(month>12) {
      month = 1;
      year++;
    }
  }
  return createTimeString(year, month, day);
}

当然,除了这种方式之外,还有其他的,类似于new Date传参之类的解决方案,这也算是一种吧

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Ajax+Json 级联菜单实现代码
Oct 27 Javascript
利用div+jquery自定义滚动条样式的2种方法
Jul 18 Javascript
基于JS代码实现导航条弹出式悬浮菜单
Jun 17 Javascript
20分钟打造属于你的Bootstrap站点
Jul 27 Javascript
几句话带你理解JS中的this、闭包、原型链
Sep 26 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
Oct 15 Javascript
H5上传本地图片并预览功能
May 08 Javascript
微信小程序实现展示评分结果功能
Feb 15 Javascript
javascript实现拖拽碰撞检测
Mar 12 Javascript
基于JavaScript实现控制下拉列表
May 08 Javascript
vue或react项目生产环境去掉console.log的操作
Sep 02 Javascript
vue 如何从单页应用改造成多页应用
Oct 23 Javascript
jQuery中inArray方法注意事项分析
Jan 25 #Javascript
jquery ui dialog替代confirm实例分析
Jan 25 #Javascript
AngularJS控制器controller正确的通信的方法
Jan 25 #Javascript
AngularJS入门心得之directive和controller通信过程
Jan 25 #Javascript
详解jquery事件delegate()的使用方法
Jan 25 #Javascript
AngularJS中的Directive实现延迟加载
Jan 25 #Javascript
AngularJS中的Directive自定义一个表格
Jan 25 #Javascript
You might like
使用PHP实现微信摇一摇周边红包
2016/01/04 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
Thinkphp实现站点静态化的方法详解
2017/03/21 PHP
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
2020/01/23 PHP
javascript 获取图片颜色
2009/04/05 Javascript
图片Slider 带左右按钮的js示例
2013/08/30 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
js特殊字符过滤的示例代码
2014/03/05 Javascript
原生js实现addClass,removeClass,hasClass方法
2016/04/27 Javascript
Bootstrap CSS布局之表格
2016/12/17 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
js使用i18n实现页面国际化的方法
2017/05/09 Javascript
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
Node.js搭建小程序后台服务
2018/01/03 Javascript
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
vue 指令之气泡提示效果的实现代码
2018/10/18 Javascript
vue实现新闻展示页的步骤详解
2019/04/11 Javascript
微信小程序调用后台service教程详解
2020/11/06 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
[01:12]DOTA2次级职业联赛 - Newbee.Y 战队宣传片
2014/12/01 DOTA
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
老生常谈Python startswith()函数与endswith函数
2017/09/08 Python
python深度优先搜索和广度优先搜索
2018/02/07 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
2018/04/10 Python
python通过txt文件批量安装依赖包的实现步骤
2019/08/13 Python
Python读取csv文件实例解析
2019/12/30 Python
python数据类型可变不可变知识点总结
2020/03/06 Python
外贸业务员岗位职责
2015/02/13 职场文书
升职自荐信怎么写
2015/03/05 职场文书
个人简历自我评价怎么写
2015/03/10 职场文书
借条格式范本
2015/05/25 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书