javascript实现日期按月份加减


Posted in Javascript onMay 15, 2015

项目中需要用到,自己写了一个。javascript日期按月加减

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta charset="utf-8">
  <title></title>
  <script>
    function dateToDate(date) {
      var sDate = new Date();
      if (typeof date == 'object'
        && typeof new Date().getMonth == "function"
        ) {
        sDate = date;
      }
      else if (typeof date == "string") {
        var arr = date.split('-')
        if (arr.length == 3) {
          sDate = new Date(arr[0] + '-' + arr[1] + '-' + arr[2]);
        }
      }

      return sDate;
    }


    function addMonth(date, num) {
      num = parseInt(num);
      var sDate = dateToDate(date);

      var sYear = sDate.getFullYear();
      var sMonth = sDate.getMonth() + 1;
      var sDay = sDate.getDate();

      var eYear = sYear;
      var eMonth = sMonth + num;
      var eDay = sDay;
      while (eMonth > 12) {
        eYear++;
        eMonth -= 12;
      }

      var eDate = new Date(eYear, eMonth - 1, eDay);

      while (eDate.getMonth() != eMonth - 1) {
        eDay--;
        eDate = new Date(eYear, eMonth - 1, eDay);
      }

      return eDate;
    }

    function calcDate() {
      var d = document.getElementById('date').value;
      var n = document.getElementById('num').value;
      var eDate = addMonth(d, n);
      document.getElementById('result').innerHTML = eDate.getFullYear() + '-' + (eDate.getMonth() + 1) + '-' + eDate.getDate();
    }
  </script>
</head>
<body>
  <input type="date" id="date" />
  <input type="number" id="num" value="1" />
  <input type="button" value="计算" onclick="calcDate()" />
  <div id="result"></div>
</body>
</html>

方法二:

<script language="javascript">
Date.prototype.Format = function(fmt) 
{
//代码作者: meizz 
var o =
{ 
"M+" : this.getMonth() + 1, //月份 
"d+" : this.getDate(), //日 
"h+" : this.getHours(), //小时 
"m+" : this.getMinutes(), //分 
"s+" : this.getSeconds(), //秒 
"q+" : Math.floor((this.getMonth() + 3) / 3), //季度 
"S" : this.getMilliseconds() //毫秒 
}; 
if (/(y+)/.test(fmt)) 
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); 
for (var k in o) 
if (new RegExp("(" + k + ")").test(fmt)) 
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); 
return fmt; 
}
Date.prototype.addDays = function(d)
{
this.setDate(this.getDate() + d);
};
Date.prototype.addWeeks = function(w)
{
this.addDays(w * 7);
};
Date.prototype.addMonths= function(m)
{
var d = this.getDate();
this.setMonth(this.getMonth() + m);
if (this.getDate() < d)
this.setDate(0);
};
Date.prototype.addYears = function(y)
{
var m = this.getMonth();
this.setFullYear(this.getFullYear() + y);
if (m < this.getMonth()) 
{
this.setDate(0);
}
};
</script>

方法三:

<script> 
function  DateAdd(interval,number,date) 
{ 
/* 
 *---------------  DateAdd(interval,number,date)  ----------------- 
 *  DateAdd(interval,number,date)  
 *  功能:实现VBScript的DateAdd功能. 
 *  参数:interval,字符串表达式,表示要添加的时间间隔. 
 *  参数:number,数值表达式,表示要添加的时间间隔的个数. 
 *  参数:date,时间对象. 
 *  返回:新的时间对象. 
 *  var  now  =  new  Date(); 
 *  var  newDate  =  DateAdd( "d ",5,now); 
 *  author:wanghr100(灰豆宝宝.net) 
 *  update:2004-5-28  11:46 
 *---------------  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  "h "  :  { 
            date.setHours(date.getHours()+number);
            return  date; 
            break; 
        } 
        case  "m "  :  { 
            date.setMinutes(date.getMinutes()+number); 
            return  date; 
            break; 
        } 
        case  "s "  :  { 
            date.setSeconds(date.getSeconds()+number); 
            return  date; 
            break; 
        } 
        default  :  { 
            date.setDate(d.getDate()+number); 
            return  date; 
            break; 
        } 
    } 
}
var  now  =  new  Date(); 
//加五天. 
var  newDate  =  DateAdd( "d ",5,now); 
alert(newDate.toLocaleDateString()) 
//加两个月. 
newDate  =  DateAdd( "m ",2,now); 
alert(newDate.toLocaleDateString()) 
//加一年 
newDate  =  DateAdd( "y ",1,now); 
alert(newDate.toLocaleDateString()) 
</script>

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
用JavaScript获取网页中的js、css、Flash等文件
Dec 20 Javascript
js获取图片长和宽度的代码
Nov 24 Javascript
javascript 闭包
Sep 15 Javascript
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
Jun 14 Javascript
jQuery应用之jQuery链用法实例
Jan 19 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
Jan 22 Javascript
jQuery获取多种input值的简单实现方法
Jun 20 Javascript
深入解析Javascript闭包的功能及实现方法
Jul 10 Javascript
javascript时间差插件分享
Jul 18 Javascript
JavaScript ES6中CLASS的使用详解
Nov 22 Javascript
JQuery 选择器、DOM节点操作练习实例
Sep 28 jQuery
AngularJS下$http服务Post方法传递json参数的实例
Mar 29 Javascript
Javascript递归打印Document层次关系实例分析
May 15 #Javascript
Javascript节点关系实例分析
May 15 #Javascript
自己编写的支持Ajax验证的JS表单验证插件
May 15 #Javascript
Javascript中prototype属性实现给内置对象添加新的方法
May 14 #Javascript
Javascript进制转换实例分析
May 14 #Javascript
Javascript中For In语句用法实例
May 14 #Javascript
Javascript中With语句用法实例
May 14 #Javascript
You might like
用PHP中的 == 运算符进行字符串比较
2006/11/26 PHP
PHP GD 图像处理组件的常用函数总结
2010/04/28 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
php+mysql数据库实现无限分类的方法
2014/12/12 PHP
php与Mysql的一些简单的操作
2015/02/26 PHP
深入浅析PHP无限极分类的案例教程
2016/05/09 PHP
PHP三种方式实现链式操作详解
2017/01/21 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
js类中的公有变量和私有变量
2008/07/24 Javascript
js用闭包遍历树状数组的方法
2014/03/19 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
2014/03/22 Javascript
javascript实现控制div颜色
2015/07/07 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
JavaScript实现JSON合并操作示例【递归深度合并】
2018/09/07 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
2019/08/07 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
简单的Python2.7编程初学经验总结
2015/04/01 Python
各种Python库安装包下载地址与安装过程详细介绍(Windows版)
2016/11/02 Python
Win10下Python环境搭建与配置教程
2016/11/18 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
Django安装配置mysql的方法步骤
2018/10/15 Python
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
Darphin迪梵官网: 来自巴黎,植物和精油调制的护肤品牌
2016/10/11 全球购物
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
Aeropostale官网:美国著名校园品牌及青少年服饰品牌
2019/03/21 全球购物
莫斯科购买书籍网站:Book24
2020/01/12 全球购物
SheIn沙特阿拉伯:女装在线
2020/03/23 全球购物
办理暂住证介绍信
2014/01/11 职场文书
公司活动总结怎么写
2014/06/25 职场文书
普通党员个人对照检查材料
2014/09/18 职场文书
假期安全教育广播稿
2014/10/04 职场文书
合伙开公司协议书范本
2014/10/28 职场文书
高中家长意见怎么写
2015/06/03 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
nginx刷新页面出现404解决方案(亲测有效)
2022/03/18 Servers
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python