在上篇文章《超级好用的js处理时间函数(一)》中介绍了两个函数,反响比较好,现在再介绍两个,如果大家觉得有用,可以收藏备用。
判断一个年份是否为闰年
代码:
/*
函数:判断一个年份是否为闰年
返回:是否为闰年
*/
Date.prototype.isLeapYear=function(){
varyear=this.getFullYear();
return(year%4==0)(year%!=0
year%==0);
}
测试:
scripttype=text/javascript
document.writeln(newDate().convertDate(-04-08).isLeapYear()+br/);
document.writeln(newDate().convertDate(-04-08).isLeapYear()+br/);
/script
结果:
true
false
格式化日期
这个函数类似.net中Format函数,传入格式化字符串如”yyyy-MM-dd”,返回格式化后的日期。
/*
函数:格式化日期
参数:formatStr-格式化字符串
d:将日显示为不带前导零的数字,如1
dd:将日显示为带前导零的数字,如01
ddd:将日显示为缩写形式,如Sun
dddd:将日显示为全名,如Sunday
M:将月份显示为不带前导零的数字,如一月显示为1
MM:将月份显示为带前导零的数字,如01
MMM:将月份显示为缩写形式,如Jan
MMMM:将月份显示为完整月份名,如January
yy:以两位数字格式显示年份
yyyy:以四位数字格式显示年份
h:使用12小时制将小时显示为不带前导零的数字,注意
的用法
hh:使用12小时制将小时显示为带前导零的数字
H:使用24小时制将小时显示为不带前导零的数字
HH:使用24小时制将小时显示为带前导零的数字
m:将分钟显示为不带前导零的数字
mm:将分钟显示为带前导零的数字
s:将秒显示为不带前导零的数字
ss:将秒显示为带前导零的数字
l:将毫秒显示为不带前导零的数字
ll:将毫秒显示为带前导零的数字
tt:显示am/pm
TT:显示AM/PM
返回:格式化后的日期
*/
Date.prototype.format=function(formatStr){
vardate=this;
/*
函数:填充0字符
参数:value-需要填充的字符串,length-总长度
返回:填充后的字符串
*/
varzeroize=function(value,length){
if(!length){
length=2;
}
value=newString(value);
for(vari=0,zeros=;i(length-value.length);i++){
zeros+=0;
}
returnzeros+value;
};
returnformatStr.replace(/[^]*
[^]*
\b(?:d{1,4}
M{1,4}
yy(?:yy)?
([hHmstT])\1?
[lLZ])\b/g,function(0){
switch(0){
cased:returndate.getDate();
casedd:returnzeroize(date.getDate());
caseddd:return[Sun,Mon,Tue,Wed,Thr,Fri,Sat][date.getDay()];
casedddd:return[Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday][date.getDay()];
caseM:returndate.getMonth()+1;
caseMM:returnzeroize(date.getMonth()+1);
caseMMM:return[Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec][date.getMonth()];
caseMMMM:return[January,February,March,April,May,June,July,August,September,October,November,December][date.getMonth()];
caseyy:returnnewString(date.getFullYear()).substr(2);
caseyyyy:returndate.getFullYear();
caseh:returndate.getHours()%12
12;
casehh:returnzeroize(date.getHours()%12
12);
caseH:returndate.getHours();
caseHH:returnzeroize(date.getHours());
casem:returndate.getMinutes();
casemm:returnzeroize(date.getMinutes());
cases:returndate.getSeconds();
casess:returnzeroize(date.getSeconds());
casel:returndate.getMilliseconds();
casell:returnzeroize(date.getMilliseconds());
casett:returndate.getHours()12?am:pm;
caseTT:returndate.getHours()12?AM:PM;
}
});
}
测试:
scripttype=text/javascript
document.writeln(newDate().format(yyyy-MM-ddhh:mm:ss));
/script
结果:
-11-:31:53