JavaScript日期时间与时间戳的转换函数分享
2023-06-13 09:15:43 时间
如果只是将当前时间转成时间戳,可以直接使用newDate().getTime()/1000;但如果是将某个具体时间或日期转成Unix时间戳,ie不支持像newDate(“2013-1-1”) 这样带参数的方法,将返回NaN。
对此,我写了以下函数,支持ie6+,谷歌,火狐等浏览器:
functiongetTime(day){
re=/(\d{4})(?:-(\d{1,2})(?:-(\d{1,2}))?)?(?:\s+(\d{1,2}):(\d{1,2}):(\d{1,2}))?/.exec(day);
returnnewDate(re[1],(re[2]||1)-1,re[3]||1,re[4]||0,re[5]||0,re[6]||0).getTime()/1000;
}
//test
alert(getTime("2013-02-0310:10:10"));
alert(getTime("2013-02-03"));
alert(getTime("2013-02"));
alert(getTime("2013"));
下面这个将时间戳转换成日期格式的函数,支持自定义的日期格式,效果类似PHP的date函数,同样支持ie6+,谷歌,火狐等浏览器。这个函数是网友实现的,以后有时间我也写一个出来^_^
functiondate(format,timestamp){
vara,jsdate=((timestamp)?newDate(timestamp*1000):newDate());
varpad=function(n,c){
if((n=n+"").length<c){
returnnewArray(++c-n.length).join("0")+n;
}else{
returnn;
}
};
vartxt_weekdays=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
vartxt_ordin={1:"st",2:"nd",3:"rd",21:"st",22:"nd",23:"rd",31:"st"};
vartxt_months=["","January","February","March","April","May","June","July","August","September","October","November","December"];
varf={
//Day
d:function(){returnpad(f.j(),2)},
D:function(){returnf.l().substr(0,3)},
j:function(){returnjsdate.getDate()},
l:function(){returntxt_weekdays[f.w()]},
N:function(){returnf.w()+1},
S:function(){returntxt_ordin[f.j()]?txt_ordin[f.j()]:"th"},
w:function(){returnjsdate.getDay()},
z:function(){return(jsdate-newDate(jsdate.getFullYear()+"/1/1"))/864e5>>0},
//Week
W:function(){
vara=f.z(),b=364+f.L()-a;
varnd2,nd=(newDate(jsdate.getFullYear()+"/1/1").getDay()||7)-1;
if(b<=2&&((jsdate.getDay()||7)-1)<=2-b){
return1;
}else{
if(a<=2&&nd>=4&&a>=(6-nd)){
nd2=newDate(jsdate.getFullYear()-1+"/12/31");
returndate("W",Math.round(nd2.getTime()/1000));
}else{
return(1+(nd<=3?((a+nd)/7):(a-(7-nd))/7)>>0);
}
}
},
//Month
F:function(){returntxt_months[f.n()]},
m:function(){returnpad(f.n(),2)},
M:function(){returnf.F().substr(0,3)},
n:function(){returnjsdate.getMonth()+1},
t:function(){
varn;
if((n=jsdate.getMonth()+1)==2){
return28+f.L();
}else{
if(n&1&&n<8||!(n&1)&&n>7){
return31;
}else{
return30;
}
}
},
//Year
L:function(){vary=f.Y();return(!(y&3)&&(y%1e2||!(y%4e2)))?1:0},
//onotsupportedyet
Y:function(){returnjsdate.getFullYear()},
y:function(){return(jsdate.getFullYear()+"").slice(2)},
//Time
a:function(){returnjsdate.getHours()>11?"pm":"am"},
A:function(){returnf.a().toUpperCase()},
B:function(){
//peterpaulkoch:
varoff=(jsdate.getTimezoneOffset()+60)*60;
vartheSeconds=(jsdate.getHours()*3600)+(jsdate.getMinutes()*60)+jsdate.getSeconds()+off;
varbeat=Math.floor(theSeconds/86.4);
if(beat>1000)beat-=1000;
if(beat<0)beat+=1000;
if((String(beat)).length==1)beat="00"+beat;
if((String(beat)).length==2)beat="0"+beat;
returnbeat;
},
g:function(){returnjsdate.getHours()%12||12},
G:function(){returnjsdate.getHours()},
h:function(){returnpad(f.g(),2)},
H:function(){returnpad(jsdate.getHours(),2)},
i:function(){returnpad(jsdate.getMinutes(),2)},
s:function(){returnpad(jsdate.getSeconds(),2)},
//unotsupportedyet
//Timezone
//enotsupportedyet
//Inotsupportedyet
O:function(){
vart=pad(Math.abs(jsdate.getTimezoneOffset()/60*100),4);
if(jsdate.getTimezoneOffset()>0)t="-"+t;elset="+"+t;
returnt;
},
P:function(){varO=f.O();return(O.substr(0,3)+":"+O.substr(3,2))},
//Tnotsupportedyet
//Znotsupportedyet
//FullDate/Time
c:function(){returnf.Y()+"-"+f.m()+"-"+f.d()+"T"+f.h()+":"+f.i()+":"+f.s()+f.P()},
//rnotsupportedyet
U:function(){returnMath.round(jsdate.getTime()/1000)}
};
returnformat.replace(/[\\]?([a-zA-Z])/g,function(t,s){
if(t!=s){
//escaped
ret=s;
}elseif(f[s]){
//adatefunctionexists
ret=f[s]();
}else{
//nothingspecial
ret=s;
}
returnret;
});
}
//test
alert(date("Y-m-dH:i:s",(newDate).getTime()/1000));
alert(date("Y-m-d",(newDate).getTime()/1000));
alert(date("Y-m-dH:i:s","1355252653"));
相关文章
- javascript 高级教程 视频_精通JavaScript
- JS转换HTML转义符,防止javascript注入攻击,亲测可用「建议收藏」
- 【说站】javascript首字母大写转换的方法
- 用JavaScript将数字转换为大写金额详解编程语言
- JavaScript SHA1加密算法实现详细代码详解编程语言
- JavaScript实现含节日、农历的日历详解编程语言
- JavaScript学习总结(九)——Javascript面向(基于)对象编程详解编程语言
- JavaScript的document和window对象详解编程语言
- JavaScript下拉菜单实现代码
- JavaScript未知高度元素垂直居中实现代码
- JavaScript设计模式富有表现力的Javascript(一)
- JavaScript中值类型与引用类型实例说明
- javascript日期时间转换的方法
- javascript设置金额样式转换保留两位小数示例代码
- 利用noesis.Javascript开源组件.Net中执行javascript脚本
- javascript实现十六进制颜色值(HEX)和RGB格式相互转换
- JavaScript中伪协议javascript:使用探讨
- JavaScript中的object转换函数toString()与valueOf()介绍
- javascript从image转换为base64位编码的String
- jquery对象和javascript对象即DOM对象相互转换