js格式化时间(自己修改并注释)
<script language="javascript"> Date.prototype.format = function(format){ var o = { "Y+" : this.getFullYear(), //year "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) { //枚举o对象中的元素,k获得o中每个属性的名字 if(new RegExp("("+ k +")").test(format)) { //RegExpObject.test(string) 如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。 /* 原版:format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length)); //RegExp.$1是RegExp的一个属性,指的是与正则表达式匹配的第一个 子匹配(以括号为标志)字符串, //stringObject.substr(start,length) substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符 /* 例子: var str="Hello world!" document.write(str.substr(3)) 输出:lo world! */ format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : (""+ o[k]).substr((o[k]).length)); } } return format; } //使用方法 var testDate = new Date(); var testStr = testDate.format("YY年MM月dd日hh小时mm分ss秒"); document.write(testStr); </script>
经过本人的一阵摸索和网上查找,终于摸清了每一句的意思,比较详细的注释,非常适合像我一样的菜鸟学习