⽤JavaScript(js)对时间格式化
按照指定格式输出时间
根据下⽂说的
在Javascript之中,⽇期对象是Date,那么如何将⼀个⽇期对象按照定制的格式进⾏输出呢?
可以现告诉你,Date对象有有四个内置⽅法,⽤于输出为字符串格式,分别为:
1)toGMTString,将⼀个⽇期按照GMT格式显⽰
2)toLocaleString,将⼀个⽇期按照本地操作系统格式显⽰
3)toLocaleDateString,按照本地格式显⽰⼀个⽇期对象的⽇期部分
4)toLocaleTimeString,按照本地格式显⽰⼀个⽇期对象的时间部分
如果我们直接
var d=new Date()
输出
Sat Jan 23 2021 11:01:12 GMT+0800 (中国标准时间)
可以这样
输出
2021/1/23 上午11:02:11
另⼀种
//时间格式转换
//DateString:时间字符串
//Sign:分隔符
function ConvertDate(DateString, Sign) {
let _Date = new Date(DateString);
// 这⾥不得不做补充,浪费好多时间得出教训:
// Javascript 对时间的代号
// 0-11数字表⽰1-12⽉: var a= new Date(2006,5,6) 结果是2006-6-6
// 0-6表⽰星期
// 1-31表⽰⽇期
// 0-23⼩时
// 0-59分钟,秒
//年、⽉、⽇、时、分、秒
return _FullYear() + Sign
+ _Month() + 1 + Sign
+ _Date() + ' '
+ _Hours()+ ':'
+ _Minutes()+ ':'
+ _Seconds();
}
//调⽤
console.log(ConvertDate('2026-1-1 12:13:15','-'))
可以说是Web项⽬中不可或缺的⼀个Javascript类库,它可以帮助你快速的解决客户端编程的许多问题,下⾯贴出⼀个⽤js格式化时间的⽅法。
Date.prototype.format = function (format) {
var o = {
"M+": Month() + 1, //month
"d+": Date(), //day
"h+": Hours(), //hour
"m+": Minutes(), //minute
"s+": Seconds(), //second
"q+": Math.floor((Month() + 3) / 3), //quarter
"S": Milliseconds() //millisecond
}
if (/(y+)/.test(format)) format = place(RegExp.$1,
(FullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o) if (new RegExp("(" + k + ")").test(format))
format = place(RegExp.$1,
RegExp.$1.length == 1 ? o[k] :
("00" + o[k]).substr(("" + o[k]).length));
return format;
}
以上代码必须先声明,然后在使⽤。使⽤⽅法:
var d =new Date().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,样例代码如下:
var df=new SimpleDateFormat();//jsJava1.0需要使⽤DateFormat对象,不要弄错就是了
df.applyPattern("yyyy-MM-dd HH:mm:ss");
var date=new Date(2007,3,30,10,59,51);
var str=df.format(date);
document.write(str);//显⽰结果为:2007-04-30 10:59:51
通过上⾯的例⼦你可以看出,你需要做的就是指定pattern,那么pattern中yyyy、MM等都表⽰什么意思呢?如果你学习过Java的⽇期格式化,那么你应该知道,那都是占位符,这些占位符都具有特殊的函数,例如y表⽰年,yyyy表⽰四个数字的年份,例如1982,下⾯列举⼀些pattern中⽀持的特殊字符及其含义(下⾯表格引⾃Java的官⽅⽂档,做了适当修改):
G Era designator [url=]Text[/url] AD
y Year [url=]Year[/url] 1996; 96
M Month in year [url=]Month[/url] July; Jul; 07
w Week in year [url=]Number[/url] 27
W Week in month [url=]Number[/url] 2
D Day in year [url=]Number[/url] 189
d Day in month [url=]Number[/url] 10
F Day of week in month [url=]Number[/url] 2
E Day in week [url=]Text[/url] Tuesday; Tue
a Am/pm marker [url=]Text[/url] PM
H Hour in day (0-23) [url=]Number[/url] 0
k Hour in day (1-24) [url=]Number[/url] 24
K Hour in am/pm (0-11) [url=]Number[/url] 0
h Hour in am/pm (1-12) [url=]Number[/url] 12
m Minute in hour [url=]Number[/url] 30
s Second in minute [url=]Number[/url] 55
S Millisecond [url=]Number[/url] 978
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论