本文主要介绍js时间格式化的方法,并总结了javascript时间格式化的方法。感兴趣的朋友可以参考一下。
本文分享javascript时间格式化的方法,供大家参考。具体如下。
可以说是Web项目中不可或缺的Javascript类库。可以帮助你快速解决很多客户端编程的问题。这里有一个用js格式化时间的方法。
Date.prototype.format=function(格式)
{
var o={
M : this.getMonth() 1,//month
d : this.getDate(),//day
h : this.getHours(),//小时
m : this.getMinutes(),//minute
s : this.getSeconds(),//秒
q :math . floor((this . getmonth()3)/3),//quarter
s :this . get milliseconds()//毫秒
}
if(/(y )/。test(format))format=format . replace(RegExp。$1,
(this.getFullYear() )。substr(4- RegExp。$ 1 . length));
for(var k in o)if(new RegExp(( k ))。测试(格式))
format=format.replace(正则表达式。$1,
正则表达式。$1.length==1?o[k]:
( 00 o[k])。substr(( o[k])。长度));
返回格式;
}
上述代码必须在使用前声明。用法:
var d=新日期()。格式( yyyy-MM-DD );
另一种方法:
在Javascript中,date对象是Date,那么如何输出一个自定义格式的Date对象呢?
我可以告诉你,Date对象有四个内置的方法,用来以字符串格式输出,分别是:
1)toGMTString,以GMT格式显示日期。
2)toLocaleString,根据本地操作系统格式显示日期。
3)toLocaleDateString,以本地格式显示date对象的日期部分。
4)toLocaleTimeString,以本地格式显示日期对象的时间部分。
虽然Javascript的Date对象内置了输出这些字符串的方法,但是这些字符串并不是让我们来控制格式的,那么如果我们需要自己定制特殊的格式该怎么办呢?
别担心,JsJava中提供了一个特殊的类,专门用于日期的指定格式的字符串输出。可以下载JsJava-2.0.zip并引入src/jsjava/text/DateFormat.js,也可以直接引入jslib/jsjava-2.0.js,示例代码如下:
var df=new SimpleDateFormat();//jsJava1.0需要使用DateFormat对象,不要搞错就好。
df . apply pattern( yyyy-MM-DD HH:MM:ss );
var日期=新日期(2015,12,18,10,59,51);
var str=df.format(日期);
document . write(str);//显示结果为:2015年12月18日10时59分51秒
从上面的例子可以看出,你需要做的就是指定模式,那么yyyy,MM等做什么呢?在模式中意味着什么?如果你学过Java中的日期格式,那么你应该知道它们都是占位符。这些占位符有特殊的作用,例如Y代表年份,yyyy代表四位数的年份,例如1982。以下是模式支持的一些特殊字符及其含义(下表引自Java官方文档,做了适当修改):
时代标志[url=]Text[/url] AD
y Year[URL=]Year[/URL]1996;96
一年中的第m个月[URL=]月[/url]七月;七月;07
一年中的第w周[url=]Number[/url] 27
w月中的第周[url=]Number[/url] 2
一年中的第d天[url=]Number[/url] 189
一个月中的第d天[url=]Number[/url] 10
f月份中的星期几[url=]Number[/url] 2
e星期几[url=]Text[/url]星期二;周二
Am/pm标记[url=]Text[/url] PM
一天中的h小时(0-23) [url=]Number[/url] 0
一天中的k小时(1-24) [url=]Number[/url] 24
上午/下午的k小时(0-11) [url=]Number[/url] 0
上午/下午的小时(1-12)[URL=]数字[/url] 12
m小时中的分钟数[url=]Number[/url] 30
s分钟秒[url=]Number[/url] 55
s毫秒[URL=]数字[/url] 978
还有三种方法分享给你:
第一种方法:
//日期的扩展,将日期转换成指定格式的字符串
//您可以使用1-2个占位符来表示月(m)、日(d)、小时(h)、分钟(m)、秒(s)和季度(q),
//年(y)可以使用1-4个占位符,毫秒(s)只能使用1个占位符(1-3位数)
//示例:
//(新日期())。格式( yyyy-MM-dd hh:mm:ss .S)==2006-07-02 08:09:04.423
//(新日期())。格式( yyyy-M-d h:M:S . S )==2006-7-2 8:9:4.18
日期。原型。格式=函数(fmt)
{//作者:meizz
var o={
M : this.getMonth() 1,//月份
d : this.getDate(),//日
h : this.getHours(),//小时
m : this.getMinutes(),//分
s : this.getSeconds(),//秒
问:数学。地板((这个。getmonth()3)/3),//季度
S : this.getMilliseconds() //毫秒
};
if(/(y )/.测试(fmt))
fmt=fmt.replace(正则表达式1美元,(this.getFullYear() ).substr(4 - RegExp .$ 1 .长度));
对于(o中的变量k)
if(new RegExp(( k )).测试(fmt))
fmt=fmt.replace(正则表达式。$1,(正则表达式. length==1)?(o[k]) : ((00 o[k]).substr(( o[k]).长度)));
返回fmt
}
调用方法:
变量时间1=新日期()。格式( yyyy-MM-DD HH:MM:ss );
变量时间2=新日期()。格式( yyyy-MM-DD );
第二种方法:
MCE:script language= JavaScript type= text/JavaScript !-
/**
* 对日期的扩展,将日期转化为指定格式的线
* 月(M)日(d)、12小时(h)、24小时(H)分(m)秒(一个或多个)周(五)季度(问)可以用1-2 个占位符
* 年(y)可以用1-4 个占位符,毫秒(S)只能用一个占位符(是1-3 位的数字)
*例如:
*(新日期())。模式( yyyy-MM-dd hh:mm:ss .S)==2006-07-02 08:09:04.423
*(新日期())。模式( yyyy-MM-DD E HH:MM:ss )==2009-03-10二20:09:04
*(新日期())。模式( yyyy-MM-DD EE hh:MM:ss )==2009-03-10周二08:09:04
*(新日期())。模式( yyyy-MM-DD EEE hh:MM:ss )==2009-03-10星期二08:09:04
*(新日期())。模式( yyyy-M-d h:M:S . S )==2006-7-2 8:9:4.18
*/
约会。原型。模式=函数(fmt) {
var o={
M : this.getMonth() 1,//月份
d : this.getDate(),//日
h : this.getHours()==0?12 : this.getHours(),//小时
H : this.getHours(),//小时
m : this.getMinutes(),//分
s : this.getSeconds(),//秒
问:数学。地板((这个。getmonth()3)/3),//季度
S : this.getMilliseconds() //毫秒
};
var week={
0 : /u65e5 ,
1 : /u4e00 ,
2 : /u4e8c ,
3 : /u4e09 ,
4 : /u56db ,
5 : /u4e94 ,
6 : /u516d
};
if(/(y )/.测试(fmt)){
fmt=fmt.replace(正则表达式1美元,(this.getFullYear() ).substr(4 - RegExp .$ 1 .长度));
}
if(/(E )/.测试(fmt)){
fmt=fmt.replace(正则表达式$1,((RegExp .$1.length1)?(正则表达式.$ 1.1长度2?/u661f/u671f :/u 5468 ): )周[这个。getday() ]);
}
for(var k in o){
if(new RegExp(( k )).测试(fmt)){
fmt=fmt.replace(正则表达式。$1,(正则表达式. length==1)?(o[k]) : ((00 o[k]).substr(( o[k]).长度)));
}
}
返回fmt
}
var Date=new Date();
窗户。警报(日期。模式( yyyy-MM-DD hh:MM:ss );
//- /mce:脚本
第三种方法:
约会。原型。格式=功能(掩码){
var d=this
var zeroize=function (value,length) {
如果(!长度)长度=2;
值=字符串(值);
for (var i=0,zeros=我(长度-值。长度);i ) {
zeros=" 0
}
返回零值;
};
返回mask.replace(/[^]*|[^]*|/b(?d{1,4}|m{1,4}|yy(?yy)?|([hHMstT])/1?|[lLZ])/b/g,函数($0) {
开关($0) {
事例“d”:返回d . getdate();
案例“DD”:返回zeroize(d . getdate());
case ddd: return [Sun , Mon , Tue , Wed , Thr , Fri , Sat ][d . getday()];
case dddd :返回[星期日,星期一,星期二,星期三,星期四,星期五,星期六][d . getday()];
事例“M”:返回d . get month()1;
案例“MM”:返回zeroize(d . get month()1);
case MMM: return [Jan , Feb , Mar , Apr , May , Jun , Jul , Aug , Sep , Oct , Nov , Dec ][d . getmonth()];
案例“MMMM”:return[一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月][d . get month()];
事例“yy”:返回字符串(d.getFullYear()).substr(2);
案例“yyyy”:返回d .获得整年();
事例“h”:返回d . get hours()% 12 | | 12;
案例“hh”:返回zeroize(d . get hours()% 12 | | 12);
案例“H”:返回d . get hours();
案例“HH”:返回zeroize(d . get hours());
案例“m”:返回d . get minutes();
案例“mm”:返回zeroize(d . get minutes());
案例:返回d .获取秒();
案例“ss”:返回zeroize(d . get seconds());
案例“l”:返回zeroize(d.getMilliseconds(),3);
case“L”:var m=d . get毫秒();
if(m 99)m=数学。圆形(m/10);
返回归零(m);
案例“TT”:return d . get hours()12?am : pm ;
案例“TT”:return d . get hours()12?AM : PM ;
事例“Z”:返回d.toUTCString().match(/[A-Z]$/);
//返回去掉引号的引用字符串
默认:返回$0.substr(1,$0。长度-2);
}
});
};
方法一多了,就不知道如何选择了,不过还是要靠大家仔细学习研究,针对不同问题选择解决方法,希望大家喜欢这篇文章。