<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;
ruibin
相关分类