时间加减(可以对年;月;日;时;分;秒;周进行加减)以及日期自定义格式化

var myDate = new Date();

重构日期格式化1:

Date.prototype.format = function(format) {
            var o = {
                "M+": this.getMonth() + 1, //month
                "d+": this.getDate(), //day
                "h+": this.getHours(), //hour
                "m+": this.getMinutes(), //minute
                "s+": this.getSeconds(), //second
                "q+": Math.floor((this.getMonth() + 3) / 3), //quarter
                "S": this.getMilliseconds() //millisecond
            }
            if (/(y+)/.test(format)) {
                format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
            }
            for (var k in o) {
                if (new RegExp("(" + k + ")").test(format)) {
                    format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
                }
            }
            return format;
        }

  重构日期格式化2(格式化当前时间为yyyy-mm-dd形式):

  function getNowFormatDate()
  {
    var day = new Date();
    var Year = 0;
    var Month = 0;   
    var Day = 0;
    var CurrentDate = "";
    //初始化时间
    //Year= day.getYear();//有火狐下2008年显示108的bug
    Year= day.getFullYear();//ie火狐下都可以
    Month= day.getMonth()+1;
    Day = day.getDate();
    //Hour = day.getHours();
    // Minute = day.getMinutes();
    // Second = day.getSeconds();
    CurrentDate += Year + "-";
    if (Month >= 10 )
    {
      CurrentDate += Month + "-";
    }
    else
    {
      CurrentDate += "0" + Month + "-";
    }
    if (Day >= 10 )
    {
      CurrentDate += Day ;
    }
    else
    {
      CurrentDate += "0" + Day ;
    }
      return CurrentDate;
    }

   重构日期加减:

        Date.prototype.DateAdd = function(strInterval, Number) {
            var dtTmp = this;
            switch (strInterval) {
                case 's': return new Date(Date.parse(dtTmp) - (1000 * Number));
                case 'n': return new Date(Date.parse(dtTmp) - (60000 * Number));
                case 'h': return new Date(Date.parse(dtTmp) - (3600000 * Number));
                case 'd': return new Date(Date.parse(dtTmp) - (86400000 * Number));
                case 'w': return new Date(Date.parse(dtTmp) - ((86400000 * 7) * Number));
                case 'q': return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) - Number * 3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
                case 'm': return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) - Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
                case 'y': return new Date((dtTmp.getFullYear() - Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());
            }
        }
   alert(myDate.DateAdd('d', 7).format("yyyy-MM-dd hh:mm:ss"));

    //使用方法
        var now = new Date();
        var nowStr = now.format("yyyy-MM-dd hh:mm:ss");
        //使用方法2:
        var testDate = new Date();
        var testStr = testDate.format("YYYY年MM月dd日hh小时mm分ss秒");
        alert(testStr);
        //示例:
        alert(new Date().Format("yyyy年MM月dd日"));
        alert(new Date().Format("MM/dd/yyyy"));
        alert(new Date().Format("yyyyMMdd"));
        alert(new Date().Format("yyyy-MM-dd hh:mm:ss"));

原文地址:https://www.cnblogs.com/yuhanzhong/p/2875295.html