function DateAddORSub(interval,type,number)
{
/*
 * 功能:实现Script的Date加减功能.
 * 参数:interval,字符串表达式,表示要添加的时间间隔.
 * 参数:number,数值表达式,表示要添加的时间间隔的个数.
 * 参数:type,加减类型.
 * 返回:新的时间对象.
 * var newDate =DateAddORSub("d","+",5);
 */
  var date = new Date();
    switch(interval)
    {
        case "y" : {
            if(type=="+"){
             date.setFullYear(date.getFullYear()+number);
            }else{
             date.setFullYear(date.getFullYear()-number);
            }
            return date;
            break;
        }
        case "q" : {
            if(type=="+"){
            date.setMonth(date.getMonth()+number*3);
            }else{
             date.setMonth(date.getMonth()-number*3);
            }
            return date;
            break;
        }
        case "m" : {
            if(type=="+"){
             date.setMonth(date.getMonth()+number);
            }else{
             date.setMonth(date.getMonth()-number);
            }
            return date;
            break;
        }
        case "w" : {
            if(type=="+"){
            date.setDate(date.getDate()+number*7);
            }else{
            date.setDate(date.getDate()-number*7);
            }
            return date;
            break;
        }
        case "d" : {
            if(type=="+"){
             date.setDate(date.getDate()+number);
            }else{
              date.setDate(date.getDate()-number);
            }
            return date;
            break;
        }
        case "h" : {
             if(type=="+"){
            date.setHours(date.getHours()+number);
            }else{
             date.setHours(date.getHours()-number);
            }
            return date;
            break;
        }
        case "m" : {
            if(type=="+"){
            date.setMinutes(date.getMinutes()+number);
            }else{
            date.setMinutes(date.getMinutes()-number);
            }
            return date;
            break;
        }
        case "s" : {
             if(type=="+"){
            date.setSeconds(date.getSeconds()+number);
            }else{
             date.setSeconds(date.getSeconds()-number);
            }
            return date;
            break;
        }
        default : {
             if(type=="+"){
             date.setDate(d.getDate()+number);
            }else{
             date.setDate(d.getDate()-number);
            }
            return date;
            break;
        }
    }
}

function formatDate(date){;
   var year = date.getFullYear();       //年
   var month = date.getMonth() + 1;     //月
   var day = date.getDate();            //日
   return year+"-"+month+"-"+day;
 }
  
//当前时间加五天.  
var newDate = DateAddORSub("d","+",5);  
alert(newDate.toLocaleDateString());  
//当前时间减五天.  
newDate = DateAddORSub("d","-",5);  
alert(formatDate(newDate));  
//当前时间加两个月.  
newDate = DateAddORSub("m","+",2);  
alert(newDate.toLocaleDateString());  
//当前时间减两个月.  
newDate = DateAddORSub("m","-",2);  
alert(formatDate(newDate));  
//当前时间加一年  
newDate = DateAddORSub("y","+",1);  
alert(newDate.toLocaleDateString());  
//当前时间减一年  
newDate = DateAddORSub("y","-",1);  
alert(formatDate(newDate)); 

JS当前日期相加相减的更多相关文章

  1. Jquery datepicker 时间插件使用 js 时间相加,相减

    $(document).ready(function(){ //输入框事件 $('#probation').bind('input propertychange', function() { var ...

  2. js面试题--------JS中数字和字符,布尔类型相加相减问题

    JS中数字和字符相加相减问题 <html lang="en"> <head> <meta charset="utf-8" /> ...

  3. JS两日期相减

    JS两日期相减,主要用到下面两个方法 dateObject.setFullYear(year,month,day) 方法 stringObject.split(separator) 方法 functi ...

  4. 上机题目(中级)- 两个超级大的整数相加相减 (Java)

    代码例如以下: public class AddSub { public static void main(String[] args) { String a="46328648326846 ...

  5. mysql时间日期相加相减实现

    分享篇mysql中日期的一些操作,就是我们常常会用到的mysql时间日期的相加或者相减的了,这个mysql也自己带了函数,有需要的朋友可以参考一下. 最简单的方法 select TO_DAYS(str ...

  6. JS中小数相加相减时出现很长的小数点的解决方式

    1.问题: 平时写的代码中会出现这种情况,parseFloat(11.3-10.1) 运行的结果依然是1.200000000000001 代码示例: var arr = [0.0111,11.002, ...

  7. js浮点数相加、减、乘、除精确计算

    js 浮点数计算时 ,无缘无辜 后边冒出一堆 小数点………… 貌似js本身的问题,类型不定?????? 只能自己写函数处理..  http://blog.csdn.net/w4bobo/article ...

  8. scala 两个map合并,key相同时value相加/相减都可

    scala 两个map合并,key相同时value相加 1.map自带的合并操作 2.map函数 2.1示例 2.2合并两个map 3.用foldLeft 3.1 语法 3.2 合并两个map 1.m ...

  9. js 两数相减

    var SecondPrice = document.getElementById("txtSecondPrice");  //秒杀价            var MarketP ...

随机推荐

  1. Modelsim初级使用教程

    来源 http://blog.sina.com.cn/s/blog_6c7b6f030101ctlh.html 一. Modelsim简介 Modelsim仿真工具是Model公司开发的.它支持Ver ...

  2. windows gui测试工具:AutoIt

    windows gui测试工具:AutoIt 2017-01-09 目录 1 简介2 示例1 记事本自动化操作3 示例2 上传文件 1 简介 返回 AutoIt v3 是用以编写并生成具有 BASIC ...

  3. 第三步 用Jena自定义完成数据库到RDF的映射

    第三步 用Jena自定义完成数据库到RDF的映射 2013年10月17日 8:53:27 这一步用Jena编程,终于能做点有技术含量的事情了.这个工作计划本周内完成,下周一好给老师一个交待. 目标:把 ...

  4. C# 导入文件日期格式(dd/MM/yyyy)

      最近项目导入数据日期变成了这样 这是因为转换成了美国时间 美国时间格式:MM/dd/yyyy 英国时间格式:dd/MM/yyyy     避免导入出现这个问题的话就需要将excel文档单元格样式设 ...

  5. hdu 1050 Moving Tables

    http://acm.hdu.edu.cn/showproblem.php?pid=1050 这个题我首先直接用的常规贪心,用的和那个尽可能看更多完整节目那种思路.但是.......一直WA....T ...

  6. ActiveMQ, Qpid, HornetQ and RabbitMQ in Comparison

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  7. Monitoring and Tuning the Linux Networking Stack: Receiving Data

    http://blog.packagecloud.io/eng/2016/06/22/monitoring-tuning-linux-networking-stack-receiving-data/ ...

  8. JS问题Uncaught ReferenceError:XXXX is not defined

    背景: html中一个table,table中进行分页.每行后面有一系列操作,如删除,修改.现在以删除为例说明问题. 实现方式: 使用button,在onclick中调用js函数,js函数中传递参数如 ...

  9. Mysql 数据库 操作语句

    mysql 格式语句规范 如何登陆你的数据库? 举例! 如果你的是 编译安装的花 那就得去编译安装后的那个目录中去,我的是安装到/usr/local/mysql 下登陆数据库:cd /usr/loca ...

  10. ThinkPHP函数详解:F方法

    我们已经了解了ThinkPHP中的S方法的用法,F方法其实是S方法的一个子集功能,仅用于简单数据缓存,并且只能支持文件形式,不支持缓存有效期,因为采用的是PHP返回方式,所以其效率较S方法较高,因此我 ...