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 相关文章推荐
jQuery之按钮组件的深入解析
Jun 19 Javascript
深入理解JavaScript是如何实现继承的
Dec 12 Javascript
jquery的ajax跨域请求原理和示例
May 08 Javascript
使用insertAfter()方法在现有元素后添加一个新元素
May 28 Javascript
AngularJs基本特性解析(一)
Jul 21 Javascript
关于ES6的六个小特性(二)
Feb 20 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
Sep 29 Javascript
Vue Promise的axios请求封装详解
Aug 13 Javascript
JavaScript Canvas编写炫彩的网页时钟
Oct 16 Javascript
js实现鼠标拖拽div左右滑动
Jan 15 Javascript
OpenLayers3加载常用控件使用方法详解
Sep 25 Javascript
ES6学习教程之Promise用法详解
Nov 22 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/06/17 PHP
thinkPHP5框架分页样式类完整示例
2018/09/01 PHP
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
DIV菜单层实现代码
2010/11/19 Javascript
鼠标划过实现延迟加载并隐藏层的js代码
2013/10/11 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
2013/11/21 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
2015/04/16 Javascript
jQuery中extend()和fn.extend()方法详解
2015/06/03 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
2015/11/06 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
浅述Javascript的外部对象
2016/12/07 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
2018/05/30 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
JS eval代码快速解密实例解析
2020/04/23 Javascript
Vue+Element自定义纵向表格表头教程
2020/10/26 Javascript
Javascript文本框脚本实现方法解析
2020/10/30 Javascript
python基于右递归解决八皇后问题的方法
2015/05/25 Python
5款Python程序员高频使用开发工具推荐
2019/04/10 Python
详解Python中的内建函数,可迭代对象,迭代器
2019/04/29 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
python 穷举指定长度的密码例子
2020/04/02 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
python字符串拼接+和join的区别详解
2020/12/03 Python
HTML5 b和i标记将被赋予真正的语义
2009/07/16 HTML / CSS
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
儿科护士自我鉴定
2013/10/14 职场文书
管理提升方案
2014/06/04 职场文书
办公室文员岗位职责范本
2014/06/12 职场文书
2016年大学迎新工作总结
2015/10/14 职场文书
学校中层领导培训心得体会
2016/01/11 职场文书
《角的初步认识》教学反思
2016/02/17 职场文书
解决numpy和torch数据类型转化的问题
2021/05/23 Python
PC版《死亡搁浅导剪版》现已发售 展开全新的探险
2022/04/03 其他游戏