写一个可拓展的日期格式化 new Date().format(“yyyy-MM-dd HH:mm:ss 自定”)方法
在Date原型上写format方法,接收fmt
的参数为时间输出的文本格式
Date.prototype.format = function (fmt) {
var pattern = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"w+": getWeek(this.getDay()), // 星期
"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 pattern)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1,
(RegExp.$1.length == 1) ? (pattern[k]) : (("00" + pattern[k]).substr(("" + pattern[k]).length)));
return fmt;
}
function getWeek(i){
switch(i){
case 0: return "星期日";
case 1: return "星期一";
case 2: return "星期二";
case 3: return "星期三";
case 4: return "星期四";
case 5: return "星期五";
case 6: return "星期六";
break;
}
}
引用:
var getDateTime = new Date().format("yyyy-MM-dd w hh:mm:ss q");
alert(getDateTime);
输出结果:
扩展性:
在函数format中的pattern
中你还可以类比一下星期几的获取来写:
getFullYear()
写一个简单的函数获取【生肖】
getMonth()
去写一个简单的函数获取【星座】
…
注意:
- 调用的函数应该要有返回值,如
getWeek()
- 添加的类目通过自定义字母来获取,不要和
pattern
里面的键名一样即可 - 需要使用的新样式,只需要在
fmt
中文本格式出现即可,这个函数是拼接而成的所以不需要自己写上拼接符,如代码中的new Date().format("yyyy-MM-dd w hh:mm:ss q")
结语
简单的日期自定义格式输出,如有错误,欢迎指正;
本文原创,转载请注明出处
https://blog.csdn.net/Umbrella_Um/article/details/98115917