js 日期格式化

网上拷贝的,好用留着。

 1 // 对Date的扩展,将 Date 转化为指定格式的String
 2 // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, 
 3 // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
 4 // 例子: 
 5 // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 
 6 // (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18 
 7 Date.prototype.fmt = function (fmt) { //author: meizz 
 8     var o = {
 9         "M+": this.getMonth() + 1, //月份 
10         "d+": this.getDate(), //
11         "h+": this.getHours(), //小时 
12         "m+": this.getMinutes(), //
13         "s+": this.getSeconds(), //
14         "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
15         "S": this.getMilliseconds() //毫秒 
16     };
17     if (/(y+)/.test(fmt)) {
18         fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
19     }
20     for (var k in o)
21         if (new RegExp("(" + k + ")").test(fmt)) 
22             fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
23     return fmt;
24     
25 }
// 原形添加设定时间方法
Date.prototype.SetTime = function (h, m, s) {
    this.setHours(h);
    this.setMinutes(m);
    this.setSeconds(s);
    this.setMilliseconds(0);
    return this;
};

// 拷贝日期部分
Date.prototype.CopyDate = function (date) {
    this.setFullYear(date.getFullYear());
    this.setMonth(date.getMonth());
    this.setDate(date.getDate());
    return this;
};

// 将小时和分钟清零
Date.prototype.Clear = function () {
    this.setMinutes(0);
    this.setSeconds(0);
    return this;
};

/* 将日期字符串转化为日期 */
Date.prototype.fromStr = function (dateStr) {
    var datetime = dateStr.split(' ');
    var date = datetime[0].split(/[-//]/);
    this.setFullYear(Number(date[0]));
    this.setMonth(Number(date[1])-1);
    this.setDate(Number(date[2]));

    var time = datetime[1].split(':');
    this.setHours(Number(time[0]));
    this.setMinutes(Number(time[1]));
    this.setSeconds(Number(time[2]));
    this.setMilliseconds(0);
    return this;
};

/* 后推xx天 */
Date.prototype.addDays = function (days) {
    var ms = days * 24 * 60 * 60 * 1000;
    var newTime = this.getTime() + ms;
    this.setTime(newTime);
    return this;
};

/* 后推xx小时 */
Date.prototype.addHours = function (hours) {
    var ms = hours * 60 * 60 * 1000;
    var newTime = this.getTime() + ms;
    this.setTime(newTime);
    return this;
};

/* 后推xx分钟 */
Date.prototype.addMins = function (mins) {
    var ms = mins * 60 * 1000;
    var newTime = this.getTime() + ms;
    this.setTime(newTime);
    return this;
};
原文地址:https://www.cnblogs.com/jonney-wang/p/9424573.html