对Date的扩展,将 Date 转化为指定格式的String
月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
(new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
"M+","d+","h+","m+","s+"是为了方便书写正则表达式,将用一个变量表示正则表达式的规则。例如下用到的:new RegExp("("+key+")")
例子:(new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
(new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
<script>
function formateDate(date,fmt){
var dateStr = fmt;
var o ={
"M+" : date.getMonth()+1,
"d+" : date.getDate(),
"h+" : date.getHours(),
'm+' : date.getMinutes(),
's+' : date.getSeconds(),
'S' : date.getMilliseconds()
};
var week = {
"0" : "日",
"1" : "一",
"2" : "二",
"3" : "三",
"4" : "四",
"5" : "五",
"6" : "六"
};
if(/(y+)/.test(dateStr)){
dateStr=dateStr.replace(RegExp.$1,(date.getFullYear()+"").substr(4-RegExp.$1.length));
}
if(/(E+)/.test(dateStr)){
dateStr=dateStr.replace(RegExp.$1,(RegExp.$1.length>1 ?(RegExp.$1.length>2 ? "星期":"周"):"")+week[date.getDay()+""]);
}
for(var key in o){
if(new RegExp("("+key+")").test(dateStr)){
dateStr=dateStr.replace(RegExp.$1,(RegExp.$1.length==1)?o[k]:("00"+o[key]).substr((""+o[key]).length));
}
}
return dateStr;
}
var da = new Date();
var time1 = formateDate(da,"yyyy-MM-dd EEE");
var time2 = formateDate(da,"yyyy-MM-dd EE hh:mm:ss");
alert(time1);
alert(time2);
</script>