首页 > 代码库 > jQuery 根据城市时区,选择对应的即时时间

jQuery 根据城市时区,选择对应的即时时间


我们的CRM系统中,下面是用jQuery 做了个时区小插件

如图:

技术分享

 

 


// 时区城市
//$(function(){
//所有城市和时间静态输出
//var cityID = 170; //中国,北京
//var showZone = $.showZone(cityID);
//$("#cityDate .timeSelect dd").live(‘click‘,function(e){
// cityID = $(this).attr("id");
// $.showZone(cityID);
// });
//});
(function ($) {
$.extend({
"showZone": function (id) {

var city = new Array([‘安道尔 · 安道尔‘,‘A‘,‘1‘],[‘阿尔及利亚 · 阿尔及尔‘,‘A‘,‘2‘],[‘阿尔巴尼亚 · 地拉那‘,‘A‘,‘3‘],[‘奥地利 · 维也纳‘,‘A‘,‘4‘],[‘澳洲 · 伯斯‘,‘H‘,‘5‘],[‘澳洲 · 达尔文‘,‘I1‘,‘6‘],[‘澳洲 · 布里斯本‘,‘K‘,‘7‘],[‘澳洲 · 墨尔本‘,‘K‘,‘8‘],[‘澳洲 · 昆士兰‘,‘K‘,‘9‘],[‘澳洲 · 悉尼‘,‘K‘,‘10‘],[‘澳洲 · 阿得雷德‘,‘K1‘,‘11‘],[‘阿联酋 · 阿布达比‘,‘D‘,‘12‘],[‘阿联酋 · 杜拜‘,‘D‘,‘13‘],[‘阿曼 · 马斯喀特‘,‘D‘,‘14‘],[‘阿富汗 · 喀布尔‘,‘D1‘,‘15‘],[‘阿根廷 · 布宜洛斯艾利斯‘,‘P‘,‘16‘],[‘阿拉斯加 · 安克雷奇‘,‘V‘,‘17‘],[‘埃尼威托克‘,‘Y‘,‘18‘],[‘埃及 · 开罗‘,‘B‘,‘19‘],[‘埃塞俄比亚‘,‘C‘,‘20‘],[‘比利时 · 布鲁塞尔‘,‘A‘,‘21‘],[‘波兰 · 华沙‘,‘A‘,‘22‘],[‘波札那 · 嘉柏隆‘,‘B‘,‘23‘],[‘保加利亚 · 索非亚‘,‘B‘,‘24‘],[‘巴基斯坦 · 伊斯兰堡‘,‘E‘,‘25‘],[‘巴基斯坦 · 喀拉蚩‘,‘E‘,‘26‘],[‘巴西 · 巴西利亚‘,‘P‘,‘27‘],[‘巴西 · 里约热内卢‘,‘P‘,‘28‘],[‘巴巴多斯 · 布里奇敦‘,‘Q‘,‘29‘],[‘巴布亚新畿内亚‘,‘K‘,‘30‘],[‘百慕达 · 哈密尔顿‘,‘Q‘,‘31‘],[‘玻利维亚 · 拉巴斯‘,‘Q‘,‘32‘],[‘巴拉圭 · 亚松森‘,‘Q‘,‘33‘],[‘巴哈马 · 拿骚‘,‘R‘,‘34‘],[‘巴拿马 · 巴拿马城‘,‘R‘,‘35‘],[‘冰岛 · 雷克雅未克‘,‘Z‘,‘36‘],[‘北韩 · 平壤‘,‘I‘,‘37‘],[‘德国 · 柏林‘,‘A‘,‘38‘],[‘丹麦 · 哥本哈根‘,‘A‘,‘39‘],[‘德国 · 法兰克福‘,‘A‘,‘40‘],[‘德国 · 汉堡‘,‘A‘,‘41‘],[‘达累斯萨拉姆‘,‘C‘,‘42‘],[‘多米尼加共和国‘,‘Q‘,‘43‘],[‘多米尼克 · 罗索‘,‘Q‘,‘44‘],[‘俄罗斯 · 莫斯科‘,‘C‘,‘45‘],[‘厄瓜多尔 · 基多‘,‘R‘,‘46‘],[‘法国 · 里昂‘,‘A‘,‘47‘],[‘法国 · 巴黎‘,‘A‘,‘48‘],[‘芬兰 · 赫尔辛基‘,‘B‘,‘49‘],[‘佛得角 · 普拉亚‘,‘N‘,‘50‘],[‘菲律宾 · 马尼拉‘,‘H‘,‘51‘],[‘斐济 · 苏瓦‘,‘M‘,‘52‘],[‘刚果 · 布拉柴维尔‘,‘A‘,‘53‘],[‘哥伦比亚 · 波哥大‘,‘R‘,‘54‘],[‘古巴 · 哈瓦那‘,‘R‘,‘55‘],[‘哥斯达黎加 · 圣荷塞‘,‘S‘,‘56‘],[‘甘比尔群岛‘,‘V‘,‘57‘],[‘荷兰 · 阿姆斯特丹‘,‘A‘,‘58‘],[‘荷兰 · 罗索‘,‘A‘,‘59‘],[‘荷属安的列斯群岛‘,‘Q‘,‘60‘],[‘洪都拉斯 · 特古西加尔巴‘,‘S‘,‘61‘],[‘惠森迪岛‘,‘K‘,‘62‘],[‘捷克 · 布拉格‘,‘A‘,‘63‘],[‘津巴布韦 · 哈拉雷‘,‘B‘,‘64‘],[‘柬浦寨 · 金边‘,‘G‘,‘65‘],[‘基里巴斯共和国‘,‘M2‘,‘66‘],[‘加拿大 · 纽芬兰省‘,‘P1‘,‘67‘],[‘加拿大 · 新斯科舍‘,‘Q‘,‘68‘],[‘加拿大 · 蒙特利尔‘,‘R‘,‘69‘],[‘加拿大 · 渥太华‘,‘R‘,‘70‘],[‘加拿大 · 多伦多‘,‘R‘,‘71‘],[‘加拿大 · 温尼伯‘,‘S‘,‘72‘],[‘加拿大 · 埃德蒙顿‘,‘T‘,‘73‘],[‘加拿大 · 温哥华‘,‘U‘,‘74‘],[‘加纳 · 阿克拉‘,‘Z‘,‘75‘],[‘喀密隆 · 雅温得‘,‘A‘,‘76‘],[‘科威特 · 科威特‘,‘C‘,‘77‘],[‘肯雅 · 奈洛比‘,‘C‘,‘78‘],[‘卢森堡‘,‘A‘,‘79‘],[‘黎巴嫩 · 贝鲁特‘,‘B‘,‘80‘],[‘罗马尼亚 · 布加勒斯特‘,‘B‘,‘81‘],[‘美国 · 马里兰‘,‘R‘,‘82‘],[‘美国 · 新泽西‘,‘R‘,‘83‘],[‘美国 · 纽约‘,‘R‘,‘84‘],[‘美国 · 费城‘,‘R‘,‘85‘],[‘美国 · 华盛顿‘,‘R‘,‘86‘],[‘美国 · 芝加哥‘,‘S‘,‘87‘],[‘美国 · 亚特兰大‘,‘R‘,‘88‘],[‘美国 · 波士顿‘,‘R‘,‘89‘],[‘美国 · 达拉斯‘,‘S‘,‘90‘],[‘美国 · 休斯敦‘,‘S‘,‘91‘],[‘美国 · 威斯康辛‘,‘S‘,‘92‘],[‘美国 · 蒙大拿‘,‘T‘,‘93‘],[‘美国 · 新墨西哥‘,‘T‘,‘94‘],[‘美国 · 圣迭戈‘,‘T‘,‘95‘],[‘美国 · 加利福尼亚‘,‘U‘,‘96‘],[‘美国 · 拉斯维加斯‘,‘U‘,‘97‘],[‘美国 · 洛杉机‘,‘U‘,‘98‘],[‘美国 · 三藩市‘,‘U‘,‘99‘],[‘美国 · 西雅图‘,‘U‘,‘100‘],[‘美国 · 夏威夷‘,‘W‘,‘101‘],[‘美国 · 檀香山‘,‘W‘,‘102‘],[‘马来西亚 · 吉隆坡‘,‘H‘,‘103‘],[‘孟加拉 · 达卡‘,‘F‘,‘104‘],[‘缅甸‘,‘F1‘,‘105‘],[‘秘鲁 · 利马‘,‘R‘,‘106‘],[‘摩洛哥 · 卡萨布兰卡‘,‘Z‘,‘107‘],[‘摩洛哥 · 拉巴特‘,‘Z‘,‘108‘],[‘莫尔兹比港‘,‘K‘,‘109‘],[‘墨西哥 · 墨西哥城‘,‘S‘,‘110‘],[‘尼日利亚 · 阿布贾‘,‘A‘,‘111‘],[‘挪威 · 奥斯陆‘,‘A‘,‘112‘],[‘南非 · 开普敦‘,‘B‘,‘113‘],[‘南非 · 约翰尼斯堡‘,‘B‘,‘114‘],[‘南韩 · 汉城/首尔‘,‘I‘,‘115‘],[‘葡萄牙 · 里斯本‘,‘Z‘,‘116‘],[‘瑞士 · 伯恩‘,‘A‘,‘117‘],[‘瑞典 · 斯德哥尔摩‘,‘A‘,‘118‘],[‘瑞士 · 苏黎世‘,‘A‘,‘119‘],[‘日本 · 扎幌‘,‘I‘,‘120‘],[‘日本 · 东京‘,‘I‘,‘121‘],[‘日本 · 大坂‘,‘I‘,‘122‘],[‘苏丹 · 喀土木‘,‘B‘,‘123‘],[‘尚比亚 · 路沙卡‘,‘B‘,‘124‘],[‘塞普路斯 · 尼古西亚‘,‘B‘,‘125‘],[‘沙特阿拉伯 · 利雅德‘,‘C‘,‘126‘],[‘斯里兰卡 · 可伦坡‘,‘F‘,‘127‘],[‘萨摩亚‘,‘M1‘,‘128‘],[‘圣多明各‘,‘Q‘,‘129‘],[‘萨尔瓦多 · 圣萨尔瓦多‘,‘S‘,‘130‘],[‘塞内加尔 · 达喀尔‘,‘Z‘,‘131‘],[‘斯里巴加湾‘,‘H‘,‘132‘],[‘土耳其 · 伊斯坦布尔‘,‘B‘,‘133‘],[‘坦桑尼亚‘,‘C‘,‘134‘],[‘泰国 · 曼谷‘,‘G‘,‘135‘],[‘泰国 · 布吉‘,‘G‘,‘136‘],[‘特林达迪岛‘,‘O‘,‘137‘],[‘乌干达 · 坎帕拉‘,‘C‘,‘138‘],[‘乌拉圭 · 蒙得维的亚‘,‘P‘,‘139‘],[‘威廉斯塔德‘,‘Q‘,‘140‘],[‘危地马拉 · 危地马拉城‘,‘S‘,‘141‘],[‘汶莱‘,‘H‘,‘142‘],[‘西班牙 · 巴塞隆纳‘,‘A‘,‘143‘],[‘匈牙利 · 布达佩斯‘,‘A‘,‘144‘],[‘西班牙 · 马德里‘,‘A‘,‘145‘],[‘希腊 · 雅典‘,‘B‘,‘146‘],[‘新加坡‘,‘H‘,‘147‘],[‘新西兰 · 威灵顿‘,‘M‘,‘148‘],[‘新喀里多尼亚 · 努美阿‘,‘L‘,‘149‘],[‘新西兰 · 奥克兰‘,‘M‘,‘150‘],[‘意大利 · 米兰‘,‘A‘,‘151‘],[‘意大利 · 罗马‘,‘A‘,‘152‘],[‘以色列 · 耶路撒冷‘,‘B‘,‘153‘],[‘亚的斯亚贝巴‘,‘C‘,‘154‘],[‘也门 · 萨那‘,‘C‘,‘155‘],[‘伊朗 · 德克兰‘,‘C1‘,‘156‘],[‘印度 · 孟买‘,‘E1‘,‘157‘],[‘印度 · 加尔各答‘,‘E1‘,‘158‘],[‘印度 · 新德里‘,‘E1‘,‘159‘],[‘越南 · 河内‘,‘G‘,‘160‘],[‘印尼 · 雅加达‘,‘G‘,‘161‘],[‘牙买加 · 金斯敦‘,‘R‘,‘162‘],[‘英国 · 阿伯丁‘,‘Z‘,‘163‘],[‘英国 · 爱丁堡‘,‘Z‘,‘164‘],[‘英国 · 格拉斯哥‘,‘Z‘,‘165‘],[‘英国 · 利物浦‘,‘Z‘,‘166‘],[‘英国 · 伦敦‘,‘Z‘,‘167‘],[‘英国 · 曼彻斯特‘,‘Z‘,‘168‘],[‘英国 · 纽卡素‘,‘Z‘,‘169‘],[‘中国 · 北京‘,‘H‘,‘170‘],[‘中国 · 重庆‘,‘H‘,‘171‘],[‘中国 · 广州‘,‘H‘,‘172‘],[‘中国 · 哈尔滨‘,‘H‘,‘173‘],[‘中国 · 香港‘,‘H‘,‘174‘],[‘中国 · 澳门‘,‘H‘,‘175‘],[‘中国 · 南京‘,‘H‘,‘176‘],[‘中国 · 上海‘,‘H‘,‘177‘],[‘中国 · 台北‘,‘H‘,‘178‘],[‘中国 · 乌鲁木齐‘,‘H‘,‘179‘],[‘中途岛‘,‘X‘,‘180‘],[‘智利 · 圣地亚哥‘,‘Q‘,‘181‘]);

var zone = new Array([‘A‘,‘1‘],[‘B‘,‘2‘],[‘C‘,‘3‘],[‘C1‘,‘3.5‘],[‘D‘,‘4‘],[‘D1‘,‘4.5‘],[‘E‘,‘5‘],[‘E1‘,‘5.5‘],[‘F‘,‘6‘],[‘F1‘,‘6.5‘],[‘G‘,‘7‘],[‘H‘,‘8‘],[‘I‘,‘9‘],[‘I1‘,‘9.5‘],[‘K‘,‘10‘],[‘K1‘,‘10.5‘],[‘L‘,‘11‘],[‘M‘,‘12‘],[‘M1‘,‘12.5‘],[‘M2‘,‘13‘],[‘N‘,‘-1‘],[‘O‘,‘-2‘],[‘P‘,‘-3‘],[‘P1‘,‘-3.5‘],[‘Q‘,‘-4‘],[‘R‘,‘-5‘],[‘S‘,‘-6‘],[‘T‘,‘-7‘],[‘U‘,‘-8‘],[‘V‘,‘-9‘],[‘W‘,‘-10‘],[‘X‘,‘-11‘],[‘Y‘,‘-12‘],[‘Z‘,‘0‘]);

//HTML输出
var cityHtml = "";
for(var i=0;i<city.length;i++){
//var ct = city[i][0];
//var aa= ct.replace(/\,/g,"+");
//var s=ct.split(‘,‘);
/*console.log(s[0]);
for(var j=0;j<s.length;j++){
var haha = s[j];
}*/
//if(s[1]== undefined){
// s[1] = "";
//}else{
// s[1] = s[1] + ", ";
//}
//cityHtml += "" + s[1] + "99" + s[0] + "88" + city[i][1] + ",</dd>";
//cityHtml += "<dd id=‘" + city[i][0] + "‘>" + city[i][1] + "-" + city[i][2] + "</dd>";
//cityHtml += "<dd id=‘" + city[i][2] + "‘>" + city[i][2] + "-" + s[1] + s[0] + "</dd>";
cityHtml += "<dd id=‘" + city[i][2] + "‘>" + city[i][0] + "</dd>";
}
$(function(){
$("#cityDate .timeSelect").html( cityHtml );
});

function getLocalTime(cityZoneNum) {
//if (typeof cityZoneNum !== ‘number‘) return;
var d = new Date();
var len = d.getTime();
var offset = d.getTimezoneOffset() * 60000;
var utcTime = len + offset;

var dZone = new Date(utcTime + 3600000 * cityZoneNum);

var vYear = dZone.getFullYear();
var vMon = dZone.getMonth() + 1;
var vDay = dZone.getDate();
var h = dZone.getHours();
var m = dZone.getMinutes();
var se = dZone.getSeconds();

var P_d = (vMon<10 ? "0" + vMon : vMon)+"月"+(vDay<10 ? "0"+ vDay : vDay)+"日";
var P_w = "周" + "日一二三四五六".split("")[dZone.getDay()];
//var P_t = (h<10 ? "0"+ h : h)+":"+(m<10 ? "0" + m : m)+":"+(se<10 ? "0" +se : se);
var P_t = (h<10 ? "0"+ h : h)+":"+(m<10 ? "0" + m : m)+":"+(se<10 ? "0" +se : se);

$("#cityDate h3 .P_d").text(P_d);
$("#cityDate h3 .P_w").text(P_w);
$("#cityDate h3 .P_t").text(P_t);
}

for(var i=0;i<city.length;i++){

if( city[i][2] == id ){
$("#cityDate h3 .P_c").text( city[i][0] ); //默认及所选城市输出

for(var j=0;j<zone.length;j++){
if( zone[j][0] == city[i][1] ){
var id = zone[j][1];
var timeDo = window.setInterval(function(){
//window.clearInterval(haha);
getLocalTime(id);
//console.log(id);
},1000);

$("#cityDate .timeSelect dd").live(‘click‘,function(e){
window.clearInterval(timeDo);
$("#cityDate h3 .P_d, #cityDate h3 .P_w, #cityDate h3 .P_t").text("---");
});
}
}
return false;
}else{
$("#cityDate .P_c").html( "<em style=‘color:red‘>no this cityID</em>" );
}
}
}
});
})(jQuery);

jQuery 根据城市时区,选择对应的即时时间