格式化日期的js(正则魅力)

 
/**
* 时间对象的格式化;
*/
Date.prototype.format = function(format) { // ◆ 使用prototype定义原型方法
/*
* eg:format="YYYY-MM-dd hh:mm:ss";
*/
var o = { // ◆ 键值对形式的数组。只能通过加强的for循环来迭代取值
"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() + "") // ◆ RegExp.$1 : 取正则表达式中第一个分组匹配到的内容
.substr(4 - RegExp.$1.length));
} for ( var k in o) { // ◆ 加强的for循环。k为键值对数组o中的键,故o[k]为对应的值
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;
}

看下面效果:

格式化当前时间
 
 
 
需要星期的话,可以加上下面的代码
var week = {     
    "0" : "\u65e5",     // 日
    "1" : "\u4e00",     // 一
    "2" : "\u4e8c",     // 二
    "3" : "\u4e09",     // 三
    "4" : "\u56db",     // 四
    "5" : "\u4e94",     // 五
    "6" : "\u516d"    // 六
    };    
if(/(E+)/.test(format)){     
        format=format.replace(RegExp.$1, ((RegExp.$1.length>1) ? (RegExp.$1.length>2 ? "\u661f\u671f" : "\u5468") : "")+week[this.getDay()+""]);     
    }    
上一篇:Centos7 更新pip和scipy


下一篇:python 目录切换