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 相关文章推荐
一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
Sep 09 Javascript
IE6图片加载的一个BUG解决方法
Jul 13 Javascript
判断文件是否正在被使用的JS代码
Dec 21 Javascript
jQuery动态添加、删除元素的方法
Jan 09 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
Jun 23 Javascript
JavaScript中扩展Array contains方法实例
Aug 23 Javascript
javascript实现倒计时跳转页面
Jan 17 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
Aug 25 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
Jan 04 Javascript
Vue中父子组件通讯之todolist组件功能开发
May 21 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
May 31 Javascript
js技巧之十几行的代码实现vue.watch代码
Jun 09 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
vBulletin Forum 2.3.xx SQL Injection
2006/10/09 PHP
Mysql中分页查询的两个解决方法比较
2013/05/02 PHP
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
DOM精简教程
2006/10/03 Javascript
javascript延时重复执行函数 lLoopRun.js
2007/06/29 Javascript
jquery中的mouseleave和mouseout的区别 模仿下拉框效果
2012/02/07 Javascript
js判断页面中是否有指定控件的简单实例
2014/03/04 Javascript
JS获取浏览器语言动态加载JS文件示例代码
2014/10/31 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
2016/06/17 Javascript
Easyui的组合框的取值与赋值
2016/10/28 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
2016/11/16 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
Bootstrap导航条学习使用(二)
2017/02/08 Javascript
JS实现的自动打字效果示例
2017/03/10 Javascript
详解Vue.js入门环境搭建
2017/03/17 Javascript
JavaScript之iterable_动力节点Java学院整理
2017/06/29 Javascript
jquery在vue脚手架中的使用方式示例
2017/08/29 jQuery
Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’
2018/01/03 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
jQuery zTree插件使用简单教程
2019/08/16 jQuery
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
夯基础之手撕javascript继承详解
2020/11/09 Javascript
vue 中this.$set 动态绑定数据的案例讲解
2021/01/29 Vue.js
Python使用matplotlib绘制余弦的散点图示例
2018/03/14 Python
利用pyinstaller将py文件打包为exe的方法
2018/05/14 Python
Python实现判断一个整数是否为回文数算法示例
2019/03/02 Python
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
为什么要做架构设计
2015/07/08 面试题
公司出纳岗位职责
2013/12/07 职场文书
《春笋》教学反思
2014/04/15 职场文书
我是一名护士演讲稿
2014/08/28 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
《金色的草地》教学反思
2016/02/17 职场文书