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 相关文章推荐
超清晰的document对象详解
Feb 27 Javascript
分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]
Oct 12 Javascript
js判断设备是否为PC并调整图片大小
Feb 12 Javascript
jQuery如何将选中的对象转化为原始的DOM对象
Jun 09 Javascript
jquery实现邮箱自动填充提示功能
Nov 17 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
Jul 07 Javascript
干货!教大家如何选择Vue和React
Mar 13 Javascript
深入理解JavaScript创建对象的多种方式以及优缺点
Jun 01 Javascript
vue-router 导航钩子的具体使用方法
Aug 31 Javascript
javascript实现手动点赞效果
Apr 09 Javascript
vue+layui实现select动态加载后台数据的例子
Sep 20 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
Jul 07 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
Smarty模板快速入门
2007/01/04 PHP
php实现ip白名单黑名单功能
2015/03/12 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
2016/09/19 PHP
给大家分享几个常用的PHP函数
2017/01/15 PHP
PHP实现文件上传后台处理脚本
2020/03/04 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
js字符编码函数区别分析
2008/06/05 Javascript
ajax无刷新动态调用股票信息(改良版)
2008/11/01 Javascript
JavaScript继承方式实例
2010/10/29 Javascript
页面get请求 中文参数方法乱码问题的快速解决方法
2016/05/31 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
JS Canvas定时器模拟动态加载动画
2016/09/17 Javascript
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
vue引入jq插件的实例讲解
2017/09/12 Javascript
react-native-fs实现文件下载、文本存储的示例代码
2017/09/22 Javascript
解决Vue不能检测数组或对象变动的问题
2018/02/24 Javascript
vue弹窗组件的实现示例代码
2018/09/10 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
详解JavaScript数据类型和判断方法
2020/09/04 Javascript
[47:45]Liquid vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python的SQLAlchemy框架使用入门
2015/04/29 Python
Python面向对象特殊成员
2017/04/24 Python
python使用epoll实现服务端的方法
2018/10/16 Python
python web框架 django wsgi原理解析
2019/08/20 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
ShellScript面试题一则-ShellScript编程
2014/03/05 面试题
Linux的主要特性
2014/10/06 面试题
什么是岗位职责
2013/11/12 职场文书
移风易俗倡议书
2014/04/15 职场文书
群众路线领导对照材料
2014/08/23 职场文书
优秀党员推荐材料
2014/12/18 职场文书
信用卡工资证明范本
2015/06/19 职场文书
Java spring单点登录系统
2021/09/04 Java/Android
vue实现滑动解锁功能
2022/03/03 Vue.js
Tomcat执行startup.bat出现闪退的原因及解决办法
2022/04/20 Servers