关于时间的操作(JavaScript版)——依据不同区时显示对应的时间
如今项目基本上告一段落了,难得有一定的闲暇,今天利用数小时完毕了一个功能模块——依据不同区时显示对应的时间,这方面网上基本没有现成的样例,如今将代码粘贴例如以下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=GB2312" />
<title>依据不同区时显示对应的时间</title>
<script type="text/javascript">
<!-- Begin
function changeTZ() {
var selectedValue = document.getElementById("TZ").value;
var timeZone = selectedValue.split("*")[0];
var city = selectedValue.split("*")[1];
//console.log("所选城市:" + city + "、所选城市区时:" + timeZone); var date = new Date();
var currentTimezone = -(date.getTimezoneOffset()/60);//当前区时
var timeDifference = currentTimezone - timeZone;//时差
console.log("当前区时:"+currentTimezone+"、时差:"+timeDifference); var year = 0; //所选城市时间:年
var month = 0; //所选城市时间:月
var day = 0; //所选城市时间:日
var hour = 0; //所选城市时间:小时
var minute = 0;//所选城市时间:分钟
var second = 0;//所选城市时间:秒 var currentYear = date.getFullYear(); //当前时间:年
var currentMonth = date.getMonth()+1; //当前时间:月
var currentDay = date.getDate(); //当前时间:日
var currentHour = date.getHours(); //当前时间:小时
var currentMinute = date.getMinutes();//当前时间:分钟
var currentSecond = date.getSeconds();//当前时间:秒 second = currentSecond; if(timeDifference.toString().split(".").length == 2){//所选城市区时为小数
var intVlaue = parseInt(timeDifference.toString().split(".")[0]);//获取整数部分
var floatVlaue = timeDifference - intVlaue;//获取小数部分
hour = currentHour- intVlaue;
minute = currentMinute - floatVlaue*60;
if(minute>=60){
hour = hour + 1;
minute = minute - 60;
}else if(minute < 0){
hour = hour - 1;
minute = 60 + minute;
}
//console.log("当前时间(小时):" + currentHour+"、所选城市时间(小时):"+hour);
}else{
hour = currentHour-timeDifference;
minute = currentMinute;
} if(hour >= 24){
day = currentDay + 1;
hour = hour - 24;
}else if(hour >= 0 && hour < 24){
day = currentDay;
hour = hour;
}else if(hour < 0){
day = currentDay - 1;
hour = hour + 24;
} if(currentMonth==1 || currentMonth==3 || currentMonth==5 || currentMonth==7 || currentMonth==8 || currentMonth==10 || currentMonth==12 ){//31天
if(day > 31){
if(currentMonth==12){
year = currentYear + 1;
month= 1;
day = day - 31;
}else{
year = currentYear;
month= currentMonth + 1;
day = day - 31;
}
}else if(day == 0){
if(currentMonth==1){
year = currentYear - 1;
month= 12;
day = 31;
}else{
year = currentYear;
month= currentMonth - 1;
if(month==4 || month==6 || month==9 || month==11){
day = 30;
}else if(month==2){
if((year % 400 == 0)||(year % 4 == 0)&&(year % 100 != 0)){//闰年
day = 29;
}else{//平年
day = 28;
}
}
}
}else{
year = currentYear;
month= currentMonth;
day = day;
}
}
if(currentMonth==4 || currentMonth==6 || currentMonth==9 || currentMonth==11){//30天
if(day > 30){
year = currentYear;
month= currentMonth + 1;
day = day - 30;
}else if(day == 0){
year = currentYear;
month= currentMonth - 1;
day = 31;
}else{
year = currentYear;
month= currentMonth;
day = day;
}
}
if(currentMonth==2){//28天或29天
year = currentYear;
if((year % 400 == 0)||(year % 4 == 0)&&(year % 100 != 0)){//闰年
if(day > 29){
year = currentYear;
month= currentMonth + 1;
day = day - 29;
}else if(day == 0){
year = currentYear;
month= 1;
day = 31;
}else{
year = currentYear;
month= currentMonth;
day = day;
}
}else{//平年
if(day > 28){
year = currentYear;
month= currentMonth + 1;
day = day - 28;
}else if(day == 0){
year = currentYear;
month= 1;
day = 31;
}else{
year = currentYear;
month= currentMonth;
day = day;
}
}
} hour = ((hour <= 9) ? ("0" + hour) : hour);
minute = ((minute <= 9) ? ("0" + minute) : minute);
second = ((second <= 9) ? ("0" + second) : second);
Clock.innerHTML = city + ":" + year +"年"+ month +"月"+ day +"日 " + hour + ":" + minute + ":" + second;
setTimeout("changeTZ()", 1000);
}
// End -->
</script>
</head>
<body bgcolor="#ffffff" onLoad="javascript:changeTZ();">
<div id="Clock"></div>
<select style="font-size: 9pt;" onchange="changeTZ()" id="TZ">
<option value="-12*国际换日线">GMT-12</option>
<option value="-11*萨摩亚群岛">GMT-11</option>
<option value="-10*夏威夷">GMT-10</option>
<option value="-9*阿拉斯加">GMT-9</option>
<option value="-8*太平洋时间">GMT-8</option>
<option value="-7*美国山区">GMT-7</option>
<option value="-6*墨西哥">GMT-6</option>
<option value="-5*南美洲太平洋">GMT-5</option>
<option value="-4.5*加拉加斯">GMT-4.5</option>
<option value="-4*大西洋">GMT-4</option>
<option value="-3.5*纽芬兰">GMT-3.5</option>
<option value="-3*巴西利亚">GMT-3</option>
<option value="-2*大西洋中部">GMT-2</option>
<option value="-1*亚速尔">GMT-1</option>
<option value="0*格林尼治">GMT</option>
<option value="1*罗马">GMT +1</option>
<option value="2*以色列">GMT +2</option>
<option value="3*莫斯科">GMT +3</option>
<option value="3.5*德黑兰">GMT+3.5</option>
<option value="4*巴库">GMT +4</option>
<option value="4.5*喀布尔">GMT+4.5</option>
<option value="5*新德里">GMT +5</option>
<option value="5.5*孟买">GMT+5.5</option>
<option value="5.75*加德满都">GMT+5.75</option>
<option value="6*达卡">GMT +6</option>
<option value="6.5*仰光">GMT+6.5</option>
<option value="7*曼谷">GMT +7</option>
<option value="8*北京" selected>GMT +8</option>
<option value="9*东京">GMT +9</option>
<option value="9.5*达尔文">GMT+9.5</option>
<option value="10*悉尼">GMT +10</option>
<option value="11*马加丹">GMT +11</option>
<option value="12*惠灵顿">GMT +12</option>
</select>
</body>
</html>
【0分下载代码】
关于时间的操作(JavaScript版)——依据不同区时显示对应的时间的更多相关文章
- 解决linux一段时间不操作失去连接的问题
解决mac下ssh空闲一段时间自动断开的问题 http://www.haorooms.com/post/mac_iterm2_ssh 问题现象 用 ssh 命令连接服务器之后,如果一段时间不操作,再次 ...
- JavaScript显示当前时间的操作
JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标 ...
- JavaScript长时间未操作自动退出登录
主要是通过mouseover 来监听有没有进行当前页面操作,通过未操作时间和设定退出的时间做比较,从而退出登录. var oldTime = new Date().getTime(); var new ...
- javascript时间日期操作
Js获取当前日期时间及其它操作 var myDate = new Date();myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); ...
- JavaScript版拼图小游戏
慕课网上准备开个新的jQuery教程,花了3天空闲时间写了一个Javascript版的拼图小游戏,作为新教程配套的分析案例 拼图游戏网上有不少的实现案例了,但是此源码是我自己的实现,所以不做太多的比较 ...
- javascript日历控件——纯javascript版
平时只有下班时间能code,闲来写了个纯javascript版.引用该calendar.js文件,然后给要设置成日历控件的input的id设置成calendar,该input就会变成日历控件. < ...
- WPF程序长时间无人操作
在软件开发中为了安全性,特别是那些需要用到用户名和密码登录服务端的程序,常常考虑长期无人操作,程序自动跳转到用户登录界面. 判断程序是否长时间无人操作,有两个依据,第一个是鼠标长时间不动,第二个是鼠标 ...
- Web页面长时间无操作后再获取焦点时转到登录界面
今天开始讲新浪博客搬到博客园. 在工作中遇到的小问题,感觉有点意思,就记录下来吧! 该问题分为两种情况,一.Web页面长时间无操作后,在对其进行操作,比如点击“首页”.“设 ...
- Javascript版经典游戏之《扫雷》
翻出年初写的游戏贴上来,扫雷相信大家都玩过,先上图: 源码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN ...
随机推荐
- 数据库存储过程 — Sql Server
Mysql.Oracle等主流关系型数据库基本都支持存储过程,这里使用Sql Server为例进行说明. 存储过程的概念: Sql Server存储过程 SQL Server 中的存储过程是由一个或多 ...
- MySQL数据库的环境及简单操作
***********************************************声明*************************************************** ...
- Qt Creator实现状态栏显示
在程序主窗口Mainwindow中,有菜单栏,工具栏,中心部件和状态栏.前面几个已经讲过了,这次讲解状态栏的使用. 程序中有哪些不明白的类或函数,请自己查看帮助. 1.我们在mainwindow.h中 ...
- 好的android编码习惯
上一期分享了android内存优化的一些总结,这一期说说我认为的好的编码习惯,然后下一期会做安卓数据库优化的一些总结,逐渐的会将一些性能优化点总结分享出来,肯定是不够全面的希望不足的地方欢迎指出. 良 ...
- Android(java)学习笔记261:JNI之编写jni程序适配所有处理器型号
1. 还是以"02_两个数相加"为例,你会发现这个jni程序只能在ARM处理器下运行,如下: 如果我们让上面的程序运行在x86模拟器上,处理平台不对应,报如下错误: 03-29 ...
- eclipse频繁崩溃退出
1.出现下面的崩溃情况,并且改变内存大小都没有用,而且总是生成下面两个错误日志文件: 解决: 在eclipse.ini文件里面添加一行 -XX:-UseLoopPredicate 2.eclipse崩 ...
- Enumeration
Interface Enumeration<E> hasMoreElements() boolean hasMoreElements() 仅当此枚举对象包含至少一个以上元素为真:否则 ...
- Dom4j之xPath
XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历. XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointe ...
- python之7-1类
面向对象的编程,其实是将对象抽象成类,然后在类中,通过init定义实例初始化函数和多个操作实例的函数. 整个类就如同一个模板,我们可以用这个模板生成众多具现实例,并赋予实例动作. py中定义类的大致格 ...
- Activiti工作流学习-----基于5.19.0版本(4)
四.使用工作流开发 org.activiti.engine.ProcessEngine提供的Service作用在工作流引擎上面,如果所示是模仿一个公司简单的审批流程,你可以下载这个Demo:Activ ...