zl程序教程

您现在的位置是:首页 >  后端

当前栏目

js格式化时间小结

JS 时间 小结 格式化
2023-06-13 09:15:30 时间

废话不多说,先把各种格式化方法贴给大家

复制代码代码如下:


varmyDate=newDate();

myDate.getYear();//获取当前年份(2位)

myDate.getFullYear();//获取完整的年份(4位,1970-????)

myDate.getMonth();//获取当前月份(0-11,0代表1月)

myDate.getDate();//获取当前日(1-31)

myDate.getDay();//获取当前星期X(0-6,0代表星期天)

myDate.getTime();//获取当前时间(从1970.1.1开始的毫秒数)

myDate.getHours();//获取当前小时数(0-23)

myDate.getMinutes();//获取当前分钟数(0-59)

myDate.getSeconds();//获取当前秒数(0-59)

myDate.getMilliseconds();//获取当前毫秒数(0-999)

myDate.toLocaleDateString();//获取当前日期

varmytime=myDate.toLocaleTimeString();//获取当前时间

myDate.toLocaleString();//获取日期与时间

可以说是Web项目中不可或缺的一个Javascript类库,它可以帮助你快速的解决客户端编程的许多问题,下面贴出一个用js格式化时间的方法。

复制代码代码如下:


Date.prototype.format=function(format)
   {
       varo={
       "M+":this.getMonth()+1,//month
"d+":this.getDate(),   //day
"h+":this.getHours(),  //hour
"m+":this.getMinutes(),//minute
"s+":this.getSeconds(),//second
"q+":Math.floor((this.getMonth()+3)/3), //quarter
"S":this.getMilliseconds()//millisecond
       }
       if(/(y+)/.test(format))format=format.replace(RegExp.$1,
       (this.getFullYear()+"").substr(4-RegExp.$1.length));
       for(varkino)if(newRegExp("("+k+")").test(format))
       format=format.replace(RegExp.$1,
       RegExp.$1.length==1?o[k]:
       ("00"+o[k]).substr((""+o[k]).length));
       returnformat;
   }

以上代码必须先声明,然后在使用。使用方法:

vard=newDate().format("yyyy-MM-dd");
另一种方法:

在Javascript之中,日期对象是Date,那么如何将一个日期对象按照定制的格式进行输出呢?
 可以现告诉你,Date对象有有四个内置方法,用于输出为字符串格式,分别为:
 1)toGMTString,将一个日期按照GMT格式显示
 2)toLocaleString,将一个日期按照本地操作系统格式显示
 3)toLocaleDateString,按照本地格式显示一个日期对象的日期部分
 4)toLocaleTimeString,按照本地格式显示一个日期对象的时间部分
 尽管Javascript的Date对象中内置提供了这些输出为字符串的方法,但是这些字符串不是我们来控制格式的,因此如果我们需要我们自己定制的特殊格式,那么又该怎么办呢?
 不用着急,JsJava中提供了专用的类,专门对日期进行指定格式的字符串输出,你可以下载JsJava-2.0.zip,引入其中的src/jsjava/text/DateFormat.js,或者直接引入jslib/jsjava-2.0.js,样例代码如下:

复制代码代码如下:
vardf=newSimpleDateFormat();//jsJava1.0需要使用DateFormat对象,不要弄错就是了
df.applyPattern("yyyy-MM-ddHH:mm:ss");
vardate=newDate(2007,3,30,10,59,51);
varstr=df.format(date);
document.write(str);//显示结果为:2007-04-3010:59:51

通过上面的例子你可以看出,你需要做的就是指定pattern,那么pattern中yyyy、MM等都表示什么意思呢?如果你学习过Java的日期格式化,那么你应该知道,那都是占位符,这些占位符都具有特殊的函数,例如y表示年,yyyy表示四个数字的年份,例如1982,下面列举一些pattern中支持的特殊字符及其含义(下面表格引自Java的官方文档,做了适当修改):

复制代码代码如下:
GEradesignator[url=]Text[/url]AD
yYear[url=]Year[/url]1996;96
MMonthinyear[url=]Month[/url]July;Jul;07
wWeekinyear[url=]Number[/url]27
WWeekinmonth[url=]Number[/url]2
DDayinyear[url=]Number[/url]189
dDayinmonth[url=]Number[/url]10
FDayofweekinmonth[url=]Number[/url]2
EDayinweek[url=]Text[/url]Tuesday;Tue
aAm/pmmarker[url=]Text[/url]PM
HHourinday(0-23)[url=]Number[/url]0
kHourinday(1-24)[url=]Number[/url]24
KHourinam/pm(0-11)[url=]Number[/url]0
hHourinam/pm(1-12)[url=]Number[/url]12
mMinuteinhour[url=]Number[/url]30
sSecondinminute[url=]Number[/url]55
SMillisecond[url=]Number[/url]978