一个方便的日期格式器
JavaScript的Date类型只能直接输出特定的形式的表示时间的字符,如:Tue Sep 20 2016 21:37:06 GMT+0800
但我们很少需要输出这样格式的时间
本文后面的代码,通过调用.formatDate()函数,即可输出你想要的格式的时间如:varnow=newDate();document。write(.formatDate()函数,即可输出你想要的格式的时间
如:
var now=new Date();
document。write(.formatDate()函数,即可输出你想要的格式的时间如:varnow=newDate();document。write(.formatDate(now,“M/d/yyyy HH:mm”));
即可输出 9/20/2016 21:37
document.write(.formatDate(now,"M/d/yyHH:mm"));document.write(.formatDate(now,"M/d/yy HH:mm"));
document.write(.formatDate(now,"M/d/yyHH:mm"));document.write(.formatDate(now,“MM/d/yyyy HH:mm”));
document.write($.formatDate(now,“EEE MMM, d yyyy hh:mm:ss.S a”));
分别输出 9/20/16 21:43 09/20/2016 21:43
Wed Sep, 21 2016 07:22:28.767 PM
其中,yyyy代表4位数字的年份,yy代表两位数字的年份;
MMMM代表完整的英文月份名称,MMM代表月份英文名称的缩写,MM代表由0补足的两位数字的月份,M代表月份数字
dd—由0补足的两位数字的月份中的天,d—月份中的天的缩写
EEEE—星期的英文完整名称,EEE—星期的英文名称的缩写
a—上午或下午
HH—由0补足的,2位数字的2,24小时制的第几小时,H—一天中的第几小时,hh—由0补足的,2位数字的12小时制中的第几小时,h—12小时制的第几小时
mm—由0补足的,2位数字的分钟数,m—一小时中的分钟数
ss—由0补足的,2位数字的分钟数,s—一分钟内的秒数,S由0补足的,一秒内的毫秒数
好啦,快收藏下面的代码愉快地使用Date吧!
(function($){
$.formatDate = function(date,pattern) {
var result = [];
while (pattern.length>0) {
$.formatDate.patternParts.lastIndex = 0;
var matched = KaTeX parse error: Expected '}', got 'EOF' at end of input: … result.push(.formatDate.patternValue[matched[0]].call(this,date));
pattern = pattern.slice(matched[0].length);
}
else {
result.push(pattern.charAt(0));
pattern = pattern.slice(1);
}
}
return result.join(’’);
};
$.formatDate.patternParts =
/^(yy(yy)?|M(M(M(M)?)?)?|d(d)?|EEE(E)?|a|H(H)?|h(h)?|m(m)?|s(s)?|S)/;
$.formatDate.monthNames = [
‘January’,‘February’,‘March’,‘April’,‘May’,‘June’,‘July’,
‘August’,‘September’,‘October’,‘November’,‘December’
];
$.formatDate.dayNames = [
‘Sunday’,‘Monday’,‘Tuesday’,‘Wednesday’,‘Thursday’,‘Friday’,
‘Saturday’
];
$.formatDate.patternValue = {
yy: function(date) {
return $.toFixedWidth(date.getFullYear(),2);
},
yyyy: function(date) {
return date.getFullYear().toString();
},
MMMM: function(date) {
return $.formatDate.monthNames[date.getMonth()];
},
MMM: function(date) {
return $.formatDate.monthNames[date.getMonth()].substr(0,3);
},
MM: function(date) {
return $.toFixedWidth(date.getMonth()+1,2);
},
M: function(date) {
return date.getMonth()+1;
},
dd: function(date) {
return $.toFixedWidth(date.getDate(),2);
},
d: function(date) {
return date.getDate();
},
EEEE: function(date) {
return $.formatDate.dayNames[date.getDay()];
},
EEE: function(date) {
return $.formatDate.dayNames[date.getDay()].substr(0,3);
},
HH: function(date) {
return $.toFixedWidth(date.getHours(),2);
},
H: function(date) {
return date.getHours();
},
hh: function(date) {
var hours = date.getHours();
return $.toFixedWidth(hours>12 ? hours - 12 : hours,2);
},
h: function(date) {
return date.getHours()%12;
},
mm: function(date) {
return $.toFixedWidth(date.getMinutes(),2);
},
m: function(date) {
return date.getMinutes();
},
ss: function(date) {
return $.toFixedWidth(date.getSeconds(),2);
},
s: function(date) {
return date.getSeconds();
},
S: function(date) {
return $.toFixedWidth(date.getMilliseconds(),3);
},
a: function(date) {
return date.getHours() < 12 ? ‘AM’ : ‘PM’;
}
};
$.toFixedWidth = function(value,length,fill) {
var result = (value || ‘’).toString();
fill = fill || ‘0’;
var padding = length - result.length;
if (padding < 0) {
result = result.substr(-padding);
}
else {
for (var n = 0; n < padding; n++) result = fill + result;
}
return result;
};
})(jQuery);