[javascript学习指南]javascript中计算日期加减程序代码

更新时间:2017-09-18    来源:js教程    手机版     字体:

【www.bbyears.com--js教程】

下面我总结了一下,写了一个js方法,主要解决:某个日期+多少月多少天=某个日期的问题。至于,某个日期-某个日期=多少天  代码如下 复制代码

//解决IE下得到时间为NaN的情况
function parseISO8601(dateStringInRange) {
    var isoExp = /^s*(d{4})-(dd)-(dd)s*$/,
        date = new Date(NaN), month,
        parts = isoExp.exec(dateStringInRange);
    if(parts) {
      month = +parts[2];
      date.setFullYear(parts[1], month - 1, parts[3]);
      if(month != date.getMonth() + 1) {
        date.setTime(NaN);
      }
    }
    return date;
}
var change_date = function(dates,months,days) {
    var datestr = parseISO8601(dates);
    // 参数表示在当前日期下要增加的天数 
    var now = new Date(datestr);
    if(months != 0){
        now.setMonth(now.getMonth() + months);   
    }
    now.setDate((now.getDate()-1) + 1 * days);
    var year = now.getFullYear(); 
    if(months != 0){
        var month = now.getMonth()+1;
    }else{
        var month = now.getMonth()+1;
    }    
    var day = now.getDate(); 
    if (month < 10) { 
        month = "0" + month; 
    } 
    if (day < 10) { 
        day = "0" + day; 
    } 
    return year + "-" + month + "-" + day; 
}; 
var n = change_date("2012-12-01",12,32);
alert(n);


 

javascript中日期的加减运算.如今天+80天

例子

 代码如下 复制代码

<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>

本文来源:http://www.bbyears.com/wangyezhizuo/35664.html