天天看點

JS進階Date format(日期格式化)

方法一

// 對Date的擴充,将 Date 轉化為指定格式的String
// 月(M)、日(d)、小時(h)、分(m)、秒(s)、季度(q) 可以用 1-2 個占位符,  // 年(y)可以用 1-4 個占位符,毫秒(S)隻能用 1 個占位符(是 1-3 位的數字)  // 例子:  // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423  // (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18 Date.prototype.Format = function (fmt) { var o = { "M ": this.getMonth() 1, //月份 "d ": this.getDate(), //日 "H ": this.getHours(), //小時 "m ": this.getMinutes(), //分 "s ": this.getSeconds(), //秒 "q ": Math.floor((this.getMonth() 3) / 3), //季度 "S": this.getMilliseconds() //毫秒  }; if (/(y )/.test(fmt)){ fmt = fmt.replace(RegExp.$1, (this.getFullYear() "").substr(4 - RegExp.$1.length)); } for (var k in o){ if (new RegExp("(" k ")").test(fmt)){ fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" o[k]).substr((""  o[k]).length))); } } return fmt; }
           

調用方式:

var time1 = new Date().Format("yyyy-MM-dd");
var time2 = new Date().Format("yyyy-MM-dd HH:mm:ss"); 
           

方法二

/** * 對Date的擴充,将 Date 轉化為指定格式的String * 月(M)、日(d)、12小時(h)、24小時(H)、分(m)、秒(s)、周(E)、季度(q)
    可以用 1-2 個占位符 * 年(y)可以用 1-4 個占位符,毫秒(S)隻能用 1 個占位符(是 1-3 位的數字) 
 * eg: 
 * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S")==> 2006-07-02 08:09:04.423      
 * (new Date()).pattern("yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04      
 * (new Date()).pattern("yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04      
 * (new Date()).pattern("yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04      
 * (new Date()).pattern("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18      
 */        
Date.prototype.pattern=function(fmt) { var o = { "M " : this.getMonth() 1, //月份 "d " : this.getDate(), //日 "h " : this.getHours() == 0 ? 12 : this.getHours(), //小時 "H " : this.getHours(), //小時 "m " : this.getMinutes(), //分 "s " : this.getSeconds(), //秒 "q " : Math.floor((this.getMonth() 3)/3), //季度 "S" : this.getMilliseconds() //毫秒  }; if(/(y )/.test(fmt)){ fmt=fmt.replace(RegExp.$1, (this.getFullYear() "").substr(4 - RegExp.$1.length)); } if(/(E )/.test(fmt)){ fmt=fmt.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "星期" : "周") : "") "日一二三四五六".charAt(this.getDay())); } for(var k in o){ if(new RegExp("(" k ")").test(fmt)){ fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00" o[k]).substr((""  o[k]).length))); } } return fmt; } 
           

調用方式:

var date = new Date();      
console.log(date.pattern("yyyy-MM-dd EEE hh:mm:ss"));  //2017-06-09 星期五 10:16:12 console.log(date.pattern("yyyy-MM-dd EE hh:mm:ss")); //2017-06-09 周五 10:16:12 console.log(date.pattern("yyyy-MM-dd E hh:mm:ss")); //2017-06-09 五 10:16:12
           

更多專業前端知識,請上 【猿2048】www.mk2048.com

繼續閱讀