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. windows下svn+apache搭建svn服务器

    使用软件: apache_2.0.55-win32-x86-no_ssl.msi Setup-Subversion-1.5.3.msi TortoiseSVN-1.5.10.16879-win32-s ...

  2. Hibernate一张图

  3. UVA 557 - Burger(概率 递推)

     Burger  When Mr. and Mrs. Clinton's twin sons Ben and Bill had their tenth birthday, the party was ...

  4. hdu 1050 Moving Tables

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

  5. 【转】Java Thread.join()详解

    http://www.open-open.com/lib/view/open1371741636171.html 一.使用方式. join是Thread类的一个方法,启动线程后直接调用,例如: ? 1 ...

  6. Android动态加载技术初探

    一.前言: 现在,已经有实力强大的公司用这个技术开发应用了,比如淘宝,大众点评,百度地图等,之所以采用这个技术,实际上,就是方便更新功能,当然,前提是新旧功能的接口一致,不然会报Not Found等错 ...

  7. PHP获取客户端和服务器IP地址

    /** * 获取客户端IP地址 * @return string */ function get_client_ip() { if(getenv('HTTP_CLIENT_IP')){ $client ...

  8. ccmenu里的位置

    ccmenu里的位置 ccctableviewcell内的元素不需要设置高度 调整buyitem内的元素的位置,可以通过一个item来调整. ccctableview.ccctableviewcell ...

  9. To Be NUMBER ONE

    Problem Description One is an interesting integer. This is also an interesting problem. You are assi ...

  10. 两个常用的功能,将shp数据属性转成TXT和Excel(转)

    //转成txt public static void ConvertTable2Txt(ITable pTable, string pFilePath)        { int pIndex = 0 ...