<body>
<div id="date"></div>
</body>
</html>
<script>
function dateFormat(date,format) {
var o = {
"M+" : date.getMonth()+1, //month
"d+" : date.getDate(), //day
"h+" : date.getHours(), //hour
"m+" : date.getMinutes(), //minute
"s+" : date.getSeconds(), //second
"q+" : Math.floor((date.getMonth()+3)/3), //quarter
"S" : date.getMilliseconds() //millisecond
}
if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
(date.getFullYear()+"").substr(4- RegExp.$1.length));
for(var k in o)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;
}
//
function Time() {
this.produceDate = '';
Object.defineProperty(this, "produceDate", {
get: function () {
return dateFormat(produceDate,'yyyy-MM-dd');
},
set: function (value) {
produceDate = value;
}
});
}
/*获取元素*/
var date = document.getElementById('date')
// 实例化
var today = new Time();
today.produceDate=new Date();
date.innerHTML=today.produceDate;
</script>里面的方法我都明白,但是下面这一块的思路不是很清晰?这一段的if语句和for循环都没有加花括弧,不知道加和不加到底有什么区别,这样写的意义在哪里?望大神解答一下,非常感谢!if(/(y+)/.test(format)) format=format.replace(RegExp.$1,(date.getFullYear()+"").substr(4- RegExp.$1.length));for(var k in o)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;
添加回答
举报
0/150
提交
取消