JS時間格式 GMT格式轉換
阿新 • • 發佈:2018-12-26
JavaScript時間格式轉換總結
1.當前系統區域設定格式(toLocaleDateString和toLocaleTimeString)
例子:(new Date()).toLocaleDateString() + " " + (new Date()).toLocaleTimeString()
結果: 2008年1月29日 16:13:11
2.普通字串(toDateString和toTimeString)
例子: (new Date()).toDateString() + " " + (new Date()).toTimeString()
結果:Tue Jan 29 2008 16:13:11 UTC+0800
3.格林威治標準時間(toGMTString)
例子: (new Date()).toGMTString()
結果:Tue, 29 Jan 2008 08:13:11 UTC
4.全球標準時間(toUTCString)
例子: (new Date()).toUTCString()
結果:Tue, 29 Jan 2008 08:13:11 UTC
5.Date物件字串(toString)
例子: (new Date()).toString()
結果:Tue Jan 29 16:13:11 UTC+0800 2008
var today = new Date();
document.write(today); //在IE中:Sun Mar 9 09:42:27 UTC+0800 2008;在FireFox中:Sun Mar 09 2008 09:42:27 GMT+0800
var sentence = today.toString();
document.write(sentence );//在IE中:Sun Mar 9 09:44:42 UTC+0800 2008;在FireFox中:Sun Mar 09 2008 09:44:42 GMT+0800
var gmt = today.toGMTString();
document.write(gmt );//在IE中Sun, 9 Mar 2008 01:46:38 UTC;在FireFox中:Sun, 09 Mar 2008 01:46:38 GMT
var utc = today.toUTCString();
document.write(utc );//在IE中Sun, 9 Mar 2008 01:46:38 UTC;在FireFox中:Sun, 09 Mar 2008 01:46:38GMT
var local = today.toLocaleString();
document.write(local );//在IE中2008年3月9日 9:48:26;在FireFox中:2008年3月9日 9:48:26
getFullYear :獲得一個4位數字的整數;
getMonth:獲得一個在0-11之間的整數;
getDate:獲得一個1-31之間的整數;
getDay:獲得一個0-6之間的整數,0代表星期天;
getHours:獲得一個0-23之間的整數;
getMinutes:獲得一個0-59之間的整數;
getSeconds:獲得一個0-59之間的整數;
getTime :獲得從utc紀元開始的毫秒數;
getTimezoneOffset:獲得本地時間和GMT時間之間的差異,以分鐘數表示;一般是 :-480(相差8個小時)
*******************************************************************************
JS/formatDate.js //實現GMT轉換成.當前系統區域設定格式
function DateUtil(){}
/**
*功能:格式化時間
*示例:DateUtil.Format("yyyy/MM/dd","Thu Nov 9 20:30:37 UTC+0800 2006 ");
*返回:2006/11/09
*/
DateUtil.Format=function(fmtCode,date){
var result,d,arr_d;
var patrn_now_1=/^y{4}-M{2}-d{2}\sh{2}:m{2}:s{2}$/;
var patrn_now_11=/^y{4}-M{1,2}-d{1,2}\sh{1,2}:m{1,2}:s{1,2}$/;
var patrn_now_2=/^y{4}\/M{2}\/d{2}\sh{2}:m{2}:s{2}$/;
var patrn_now_22=/^y{4}\/M{1,2}\/d{1,2}\sh{1,2}:m{1,2}:s{1,2}$/;
var patrn_now_3=/^y{4}年M{2}月d{2}日\sh{2}時m{2}分s{2}秒$/;
var patrn_now_33=/^y{4}年M{1,2}月d{1,2}日\sh{1,2}時m{1,2}分s{1,2}秒$/;
var patrn_date_1=/^y{4}-M{2}-d{2}$/;
var patrn_date_11=/^y{4}-M{1,2}-d{1,2}$/;
var patrn_date_2=/^y{4}\/M{2}\/d{2}$/;
var patrn_date_22=/^y{4}\/M{1,2}\/d{1,2}$/;
var patrn_date_3=/^y{4}年M{2}月d{2}日$/;
var patrn_date_33=/^y{4}年M{1,2}月d{1,2}日$/;
var patrn_time_1=/^h{2}:m{2}:s{2}$/;
var patrn_time_11=/^h{1,2}:m{1,2}:s{1,2}$/;
var patrn_time_2=/^h{2}時m{2}分s{2}秒$/;
var patrn_time_22=/^h{1,2}時m{1,2}分s{1,2}秒$/;
if(!fmtCode){fmtCode="yyyy/MM/dd hh:mm:ss";}
if(date){
d=new Date(date);
if(isNaN(d)){
msgBox("時間引數非法\n正確的時間示例:\nThu Nov 9 20:30:37 UTC+0800 2006\n或\n2006/ 10/17");
return;}
}else{
d=new Date();
}
if(patrn_now_1.test(fmtCode))
{
arr_d=splitDate(d,true);
result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;
}
else if(patrn_now_11.test(fmtCode))
{
arr_d=splitDate(d);
result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;
}
else if(patrn_now_2.test(fmtCode))
{
arr_d=splitDate(d,true);
result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;
}
else if(patrn_now_22.test(fmtCode))
{
arr_d=splitDate(d);
result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;
}
else if(patrn_now_3.test(fmtCode))
{
arr_d=splitDate(d,true);
result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日"+" "+arr_d.hh+"時"+arr_d.mm+"分"+arr_d.ss+"秒";
}
else if(patrn_now_33.test(fmtCode))
{
arr_d=splitDate(d);
result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日"+" "+arr_d.hh+"時"+arr_d.mm+"分"+arr_d.ss+"秒";
}
else if(patrn_date_1.test(fmtCode))
{
arr_d=splitDate(d,true);
result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd;
}
else if(patrn_date_11.test(fmtCode))
{
arr_d=splitDate(d);
result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd;
}
else if(patrn_date_2.test(fmtCode))
{
arr_d=splitDate(d,true);
result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd;
}
else if(patrn_date_22.test(fmtCode))
{
arr_d=splitDate(d);
result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd;
}
else if(patrn_date_3.test(fmtCode))
{
arr_d=splitDate(d,true);
result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日";
}
else if(patrn_date_33.test(fmtCode))
{
arr_d=splitDate(d);
result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日";
}
else if(patrn_time_1.test(fmtCode)){
arr_d=splitDate(d,true);
result=arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;
}
else if(patrn_time_11.test(fmtCode)){
arr_d=splitDate(d);
result=arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;
}
else if(patrn_time_2.test(fmtCode)){
arr_d=splitDate(d,true);
result=arr_d.hh+"時"+arr_d.mm+"分"+arr_d.ss+"秒";
}
else if(patrn_time_22.test(fmtCode)){
arr_d=splitDate(d);
result=arr_d.hh+"時"+arr_d.mm+"分"+arr_d.ss+"秒";
}
else{
msgBox("沒有匹配的時間格式!");
return;
}
return result;
};
function splitDate(d,isZero){
var yyyy,MM,dd,hh,mm,ss;
if(isZero){
yyyy=d.getYear();
MM=(d.getMonth()+1)<10?"0"+(d.getMonth()+1):d.getMonth()+1;
dd=d.getDate()<10?"0"+d.getDate():d.getDate();
hh=d.getHours()<10?"0"+d.getHours():d.getHours();
mm=d.getMinutes()<10?"0"+d.getMinutes():d.getMinutes();
ss=d.getSeconds()<10?"0"+d.getSeconds():d.getSeconds();
}else{
yyyy=d.getYear();
MM=d.getMonth()+1;
dd=d.getDate();
hh=d.getHours();
mm=d.getMinutes();
ss=d.getSeconds();
}
return {"yyyy":yyyy,"MM":MM,"dd":dd,"hh":hh,"mm":mm,"ss":ss};
}
function msgBox(msg){
window.alert(msg);
}
呼叫方法:
DateUtil.Format("yyyy/MM/dd","Thu Nov 9 20:30:37 UTC+0800 2006 ")
DateUtil.Format("yyyy-MM-dd hh:mm:ss","Thu Nov 9 20:30:37 UTC+0800 2006 ")
1.當前系統區域設定格式(toLocaleDateString和toLocaleTimeString)
例子:(new Date()).toLocaleDateString() + " " + (new Date()).toLocaleTimeString()
結果: 2008年1月29日 16:13:11
2.普通字串(toDateString和toTimeString)
例子: (new Date()).toDateString() + " " + (new Date()).toTimeString()
結果:Tue Jan 29 2008 16:13:11 UTC+0800
3.格林威治標準時間(toGMTString)
例子: (new Date()).toGMTString()
結果:Tue, 29 Jan 2008 08:13:11 UTC
4.全球標準時間(toUTCString)
例子: (new Date()).toUTCString()
結果:Tue, 29 Jan 2008 08:13:11 UTC
5.Date物件字串(toString)
例子: (new Date()).toString()
結果:Tue Jan 29 16:13:11 UTC+0800 2008
var today = new Date();
document.write(today); //在IE中:Sun Mar 9 09:42:27 UTC+0800 2008;在FireFox中:Sun Mar 09 2008 09:42:27 GMT+0800
var sentence = today.toString();
document.write(sentence );//在IE中:Sun Mar 9 09:44:42 UTC+0800 2008;在FireFox中:Sun Mar 09 2008 09:44:42 GMT+0800
var gmt = today.toGMTString();
document.write(gmt );//在IE中Sun, 9 Mar 2008 01:46:38 UTC;在FireFox中:Sun, 09 Mar 2008 01:46:38 GMT
var utc = today.toUTCString();
document.write(utc );//在IE中Sun, 9 Mar 2008 01:46:38 UTC;在FireFox中:Sun, 09 Mar 2008 01:46:38GMT
var local = today.toLocaleString();
document.write(local );//在IE中2008年3月9日 9:48:26;在FireFox中:2008年3月9日 9:48:26
getFullYear
getMonth:獲得一個在0-11之間的整數;
getDate:獲得一個1-31之間的整數;
getDay:獲得一個0-6之間的整數,0代表星期天;
getHours:獲得一個0-23之間的整數;
getMinutes:獲得一個0-59之間的整數;
getSeconds:獲得一個0-59之間的整數;
getTime :獲得從utc紀元開始的毫秒數;
getTimezoneOffset:獲得本地時間和GMT時間之間的差異,以分鐘數表示;一般是 :-480(相差8個小時)
*******************************************************************************
JS/formatDate.js //實現GMT轉換成.當前系統區域設定格式
function DateUtil(){}
/**
*功能:格式化時間
*示例:DateUtil.Format("yyyy/MM/dd","Thu Nov 9 20:30:37 UTC+0800 2006 ");
*返回:2006/11/09
*/
DateUtil.Format=function(fmtCode,date){
var result,d,arr_d;
var patrn_now_1=/^y{4}-M{2}-d{2}\sh{2}:m{2}:s{2}$/;
var patrn_now_11=/^y{4}-M{1,2}-d{1,2}\sh{1,2}:m{1,2}:s{1,2}$/;
var patrn_now_2=/^y{4}\/M{2}\/d{2}\sh{2}:m{2}:s{2}$/;
var patrn_now_22=/^y{4}\/M{1,2}\/d{1,2}\sh{1,2}:m{1,2}:s{1,2}$/;
var patrn_now_3=/^y{4}年M{2}月d{2}日\sh{2}時m{2}分s{2}秒$/;
var patrn_now_33=/^y{4}年M{1,2}月d{1,2}日\sh{1,2}時m{1,2}分s{1,2}秒$/;
var patrn_date_1=/^y{4}-M{2}-d{2}$/;
var patrn_date_11=/^y{4}-M{1,2}-d{1,2}$/;
var patrn_date_2=/^y{4}\/M{2}\/d{2}$/;
var patrn_date_22=/^y{4}\/M{1,2}\/d{1,2}$/;
var patrn_date_3=/^y{4}年M{2}月d{2}日$/;
var patrn_date_33=/^y{4}年M{1,2}月d{1,2}日$/;
var patrn_time_1=/^h{2}:m{2}:s{2}$/;
var patrn_time_11=/^h{1,2}:m{1,2}:s{1,2}$/;
var patrn_time_2=/^h{2}時m{2}分s{2}秒$/;
var patrn_time_22=/^h{1,2}時m{1,2}分s{1,2}秒$/;
if(!fmtCode){fmtCode="yyyy/MM/dd hh:mm:ss";}
if(date){
d=new Date(date);
if(isNaN(d)){
msgBox("時間引數非法\n正確的時間示例:\nThu Nov 9 20:30:37 UTC+0800 2006\n或\n2006/ 10/17");
return;}
}else{
d=new Date();
}
if(patrn_now_1.test(fmtCode))
{
arr_d=splitDate(d,true);
result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;
}
else if(patrn_now_11.test(fmtCode))
{
arr_d=splitDate(d);
result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;
}
else if(patrn_now_2.test(fmtCode))
{
arr_d=splitDate(d,true);
result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;
}
else if(patrn_now_22.test(fmtCode))
{
arr_d=splitDate(d);
result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd+" "+arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;
}
else if(patrn_now_3.test(fmtCode))
{
arr_d=splitDate(d,true);
result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日"+" "+arr_d.hh+"時"+arr_d.mm+"分"+arr_d.ss+"秒";
}
else if(patrn_now_33.test(fmtCode))
{
arr_d=splitDate(d);
result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日"+" "+arr_d.hh+"時"+arr_d.mm+"分"+arr_d.ss+"秒";
}
else if(patrn_date_1.test(fmtCode))
{
arr_d=splitDate(d,true);
result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd;
}
else if(patrn_date_11.test(fmtCode))
{
arr_d=splitDate(d);
result=arr_d.yyyy+"-"+arr_d.MM+"-"+arr_d.dd;
}
else if(patrn_date_2.test(fmtCode))
{
arr_d=splitDate(d,true);
result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd;
}
else if(patrn_date_22.test(fmtCode))
{
arr_d=splitDate(d);
result=arr_d.yyyy+"/"+arr_d.MM+"/"+arr_d.dd;
}
else if(patrn_date_3.test(fmtCode))
{
arr_d=splitDate(d,true);
result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日";
}
else if(patrn_date_33.test(fmtCode))
{
arr_d=splitDate(d);
result=arr_d.yyyy+"年"+arr_d.MM+"月"+arr_d.dd+"日";
}
else if(patrn_time_1.test(fmtCode)){
arr_d=splitDate(d,true);
result=arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;
}
else if(patrn_time_11.test(fmtCode)){
arr_d=splitDate(d);
result=arr_d.hh+":"+arr_d.mm+":"+arr_d.ss;
}
else if(patrn_time_2.test(fmtCode)){
arr_d=splitDate(d,true);
result=arr_d.hh+"時"+arr_d.mm+"分"+arr_d.ss+"秒";
}
else if(patrn_time_22.test(fmtCode)){
arr_d=splitDate(d);
result=arr_d.hh+"時"+arr_d.mm+"分"+arr_d.ss+"秒";
}
else{
msgBox("沒有匹配的時間格式!");
return;
}
return result;
};
function splitDate(d,isZero){
var yyyy,MM,dd,hh,mm,ss;
if(isZero){
yyyy=d.getYear();
MM=(d.getMonth()+1)<10?"0"+(d.getMonth()+1):d.getMonth()+1;
dd=d.getDate()<10?"0"+d.getDate():d.getDate();
hh=d.getHours()<10?"0"+d.getHours():d.getHours();
mm=d.getMinutes()<10?"0"+d.getMinutes():d.getMinutes();
ss=d.getSeconds()<10?"0"+d.getSeconds():d.getSeconds();
}else{
yyyy=d.getYear();
MM=d.getMonth()+1;
dd=d.getDate();
hh=d.getHours();
mm=d.getMinutes();
ss=d.getSeconds();
}
return {"yyyy":yyyy,"MM":MM,"dd":dd,"hh":hh,"mm":mm,"ss":ss};
}
function msgBox(msg){
window.alert(msg);
}
呼叫方法:
DateUtil.Format("yyyy/MM/dd","Thu Nov 9 20:30:37 UTC+0800 2006 ")
DateUtil.Format("yyyy-MM-dd hh:mm:ss","Thu Nov 9 20:30:37 UTC+0800 2006 ")