天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

JavaScript 腳本將當(dāng)?shù)貢r間轉(zhuǎn)換成其它時區(qū)

但是,如果你想顯示不同地區(qū)的時間―--例如,如果你的本部在別的國家,你想查看“本國”時間而非當(dāng)?shù)貢r間,又該怎么辦呢?
要做到這一點,必須進(jìn)行各種時間計算才能將當(dāng)?shù)貢r間轉(zhuǎn)換為目的時間。本文將解釋如何進(jìn)行這些計算。
第一步:
事情的第一步是獲得當(dāng)?shù)貢r間。在JavaScript中,這無疑可以通過初始化一個Data()對象來輕松完成。
// create Date object for current location
d = new Date();
通過調(diào)用Data()對象的getTime()方法,即可顯示1970年1月1日后到此當(dāng)時時間之間的毫秒數(shù)。
// convert to msec since Jan 1 1970
localTime = d.getTime();
第二步:
下一步,通過Data()對象的getTimezoneOffset()方法來找出當(dāng)?shù)貢r間偏移值。在缺省情況下,此方法以分鐘顯示時區(qū)偏移值結(jié)果,因此在早先的計算中要將此值轉(zhuǎn)換成毫秒。
// obtain local UTC offset and convert to msec
localOffset = d.getTimezoneOffset() * 60000;
注意,getTimezoneOffset()方法的負(fù)返回值表示當(dāng)?shù)貢r間在全球標(biāo)準(zhǔn)時間(UTC)之前,而正返回值則表示當(dāng)?shù)貢r間在全球標(biāo)準(zhǔn)時間(UTC)之后。
注意:萬一你想知道我是如何得到60000這個倍增因數(shù)的,記住1000毫秒等于一秒,而一分鐘等于60秒。因此 ,將分鐘轉(zhuǎn)換成毫秒,要用60乘以1000等于60000。
第三步
將本地時間與本地時區(qū)偏移值相加得到當(dāng)前國際標(biāo)準(zhǔn)時間(UTC)。
// obtain UTC time in msec
utc = localTime + localOffset;
這里,變量utc包含當(dāng)前國際標(biāo)準(zhǔn)時間(UTC)。但是,此時間以1970年1月1日到現(xiàn)在所含有的毫秒數(shù)來表示。暫時讓它這樣表示,因為還要進(jìn)行一些計算。
第四步
得到國際標(biāo)準(zhǔn)時間(UTC)后,再獲得目標(biāo)城市的國際標(biāo)準(zhǔn)時間(UTC)小時偏移值,把它轉(zhuǎn)換成毫秒,再加上國際標(biāo)準(zhǔn)時間(UTC)。
// obtain and add destination's UTC time offset
// for example, Bombay
// which is UTC + 5.5 hours
offset = 5.5;
bombay = utc + (3600000*offset);
注意:萬一你想知道我是如何得到3600000這個倍增因數(shù)的,記住1000毫秒等于一秒,而一小時等于3600秒。因此 ,將小時轉(zhuǎn)換成毫秒,要用3600乘以1000等于3600000。
此時,變量bombay包含印度孟買城的當(dāng)?shù)貢r間。此當(dāng)?shù)貢r間以1970年1月1日到現(xiàn)在所含有的毫秒數(shù)來表示。顯然,這不是很合理,因此我們還要進(jìn)行一些計算。
第五步
通過初始化一個新的Data()對象,并調(diào)用此對象的toLocalString()方法,我們將前一步中計算得到的時間值轉(zhuǎn)換成一個大家可以看得懂的日期/時間字符串。
// convert msec value to date string
nd = new Date(bombay);
document.writeln("Bombay time is " + nd.toLocaleString() + "<br>");
這樣轉(zhuǎn)換就完成了!
總結(jié)
理解上面的步驟后,我們再看一看這段腳本(列表A),它建立一個緊湊,自定義的函數(shù)calcTime()來執(zhí)行所有的計算并返回一個時間值。
列表A
<html>
<head>
<script language="JavaScript">
// function to calculate local time
// in a different city
// given the city's UTC offset
function calcTime(city, offset) {
// create Date object for current location
d = new Date();
// convert to msec
// add local time zone offset
// get UTC time in msec
utc = d.getTime() + (d.getTimezoneOffset() * 60000);
// create new Date object for different city
// using supplied offset
nd = new Date(utc + (3600000*offset));
// return time as a string
return "The local time in " + city + " is " + nd.toLocaleString();
}
// get Bombay time
alert(calcTime('Bombay', '+5.5'));
// get Singapore time
alert(calcTime('Singapore', '+8'));
// get London time
alert(calcTime('London', '+1'));
</script>
</head>
<body>
</body>
</html>
這里,函數(shù)calcTime()接受一個城市名及它的國際標(biāo)準(zhǔn)時間(UTC)偏移值(按小時計)。然后內(nèi)部執(zhí)行所有上面描述的計算,并返回一個包含此城市當(dāng)?shù)貢r間的字符串。
以下是列表A輸出內(nèi)容的一些樣本。
孟買當(dāng)?shù)貢r間為2005年8月1日,星期一下午4時43分51秒
新加坡當(dāng)?shù)貢r間為2005年8月1日,星期一下午7時13分51秒
倫敦當(dāng)?shù)貢r間為2005年8月1日,星期一下午12時13分51秒

JavaScript技術(shù)JavaScript 腳本將當(dāng)?shù)貢r間轉(zhuǎn)換成其它時區(qū),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 青青青国产依人精品视频 | 久久九九青青国产精品 | 中文字幕在线观看亚洲 | 久久精品热线免费 | 日本精品久久久久中文字幕 | 夜夜狂射影院欧美极品 | 曰本老头同性xxxxx | 99re8久久热在线视频 | 国产免费麻传媒精品国产AV | 成人中文在线 | 色欲AV精品人妻一区二区麻豆 | 女人被弄到高潮叫床免 | 一二三四在线视频社区8 | 97久久伊人精品影院 | 国产午夜一区二区三区免费视频 | 国产综合18久久久久久软件 | 欧美黑人巨大性极品hd欧 | 久久艹影院| 午夜伦伦电影理论片大片 | 亚洲成人免费在线观看 | 欧美最猛性XXXXX肛交 | 国产婷婷午夜无码A片 | pkf女尸studiosxnxx| 免费又黄又硬又爽大片 | 大陆极品少妇内射AAAAAA | 人人射人人爱 | 岛国大片在线观看免费版 | 办公室丝袜老师在线观看 | 千禧金瓶梅快播 | 野花影院手机在线观看 | 久久综合伊人 magnet | 国产免费人视频在线观看免费 | 久久国产精品萌白酱免费 | 秋秋影视午夜福利高清 | 男女亲吻摸下面吃奶视频 | 在线成年av动漫电影 | 欧美最猛黑人AAAAA片 | 调教美丽的白丝袜麻麻视频 | 成人免费视频在线播放 | 國產麻豆AVMDXMDX| 亚洲精品视频在线观看免费 |