JS实现电子时钟
目前有个小项目,在首页头部导航栏里需要一个电子时钟的效果,于是我就采用如下代码实现了一个电子时钟的效果。不过不完美,第一种方式容易导致网页莫名其妙的异常,后来觉得可能是做的操作太多了,然后又编写了如2所示的代码。代码比较简单,思路也比较简单就不多介绍了,在此做个记录,以备以后的项目中也会使用的到。
1:存在导致网页异常的现象,猜测是做的操作太多了,不过这种方式只要网页加载,就能够保证时钟一直走下去
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Show Time Page</title>
</head>
<body> <a id="time"></a> <script type="text/javascript"> function timeShow()
{
var years,months,dates,hours,minutes,seconds,weeks; var intYears,intMonths,intDates,intHours,intMinutes,intSeconds,intWeeks; var today; var timeString; today = new Date();//获得系统当前时间 intYears = today.getFullYear();//获得年
intMonths = today.getMonth() + 1;//获得月份+1
intDates = today.getDate();//获得天数
intHours = today.getHours();//获得小时
intMinutes = today.getMinutes();//获得分钟
intSeconds = today.getSeconds();//获得秒
intWeeks = today.getDay();//获得星期 years = intYears + '年 '; if(intMonths < 10){
months = '0' + intMonths + '月';
}else{
months = intMonths + '月';
} if(intDates < 10){
dates = '0' + intDates + '日 ';
}else{
dates = intDates + '日 ';
} var weekArray = new Array(7); weekArray[0] = '星期日';
weekArray[1] = '星期一';
weekArray[2] = '星期二';
weekArray[3] = '星期三';
weekArray[4] = '星期四';
weekArray[5] = '星期五';
weekArray[6] = '星期六'; weeks =weekArray[intWeeks] + ' '; if(intHours == 0){
hours = '00:';
}else if(intHours < 10){
hours = '0' + intHours + ':';
}else{
hours = intHours + ":";
} if(intMinutes == 0){
minutes = '00';
}else if(intMinutes < 10){
minutes = '0' + intMinutes ;
}else{
minutes = intMinutes;
} timeString = years + months + dates + weeks + hours + minutes $("#time").text(timeString);
window.setInterval('timeShow()',60000);
} </script>
</body>
</html>
2:改进版,经测试没有引起网页异常的现象
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Show Time Page</title>
</head>
<body> <a id="time"></a><a id="bjtime"></a> <script type="text/javascript">
/*
进入页面加载的方法
*/
window.onload=function()
{
var date=new Date(),time=date.getTime();
setInterval(function() {set(time);time = Number(time);time += 1000;},1000);
setTodayDate(date);
} /*
设置日期的方法,针对年月日星期的显示
*/
function setTodayDate(today)
{
var years,months,dates,weeks, intYears,intMonths,intDates,intWeeks,today,timeString; intYears = today.getFullYear();//获得年
intMonths = today.getMonth() + 1;//获得月份+1
intDates = today.getDate();//获得天数
intWeeks = today.getDay();//获得星期 years = intYears + '年 '; if(intMonths < 10){
months = '0' + intMonths + '月';
}else{
months = intMonths + '月';
} if(intDates < 10){
dates = '0' + intDates + '日 ';
}else{
dates = intDates + '日 ';
} var weekArray = new Array(7);
weekArray[0] = '星期日';
weekArray[1] = '星期一';
weekArray[2] = '星期二';
weekArray[3] = '星期三';
weekArray[4] = '星期四';
weekArray[5] = '星期五';
weekArray[6] = '星期六';
weeks =weekArray[intWeeks] + ' '; timeString = years + months + dates + weeks; document.getElementById('time').innerHTML=timeString;
} /*
设置北京时间的方法,针对时分秒的显示
*/
function set(time)
{
var beijingTimeZone = 8;
var timeOffset = ((-1 * (new Date()).getTimezoneOffset()) - (beijingTimeZone * 60)) * 60000;
var now = new Date(time - timeOffset);
document.getElementById('bjtime').innerHTML = p(now.getHours())+':'+p(now.getMinutes())+':'+p(now.getSeconds());
} /*
格式化时间的显示方式
*/
function p(s)
{
return s < 10 ? '0' + s : s;
} </script>
</body>
</html>
3:代码比较简单,直接可以使用,放到文本文件中修改文件格式即可,比如:.html,用浏览器打开便可直接查看代码的效果,如下图所示:

JS实现电子时钟的更多相关文章
- js傻瓜式制作电子时钟
js傻瓜式制作电子时间 使用到的知识点 setInterval函数 构建函数new Date if判断 demo: //css样式请自行设置 <span id="timer" ...
- Js电子时钟
简单版电子时钟,需要以下几个步骤 1. 封装一个函数 返回当前的时分秒 2. 使用定时器使当前以获取到的系统时间走动,每间隔一面调用 3. 把获取到的时间放到span盒子里,添加样式 效果展示 实现 ...
- dom事件操作例题,电子时钟,验证码,随机事件
dom事件操作 当事件发生时,可以执行js 例子: 当用户点击时,会改变<h1>的内容: <h1 onClick="this.innerHTML='文本更换'"& ...
- [JS,Canvas]日历时钟
[JS,Canvas]日历时钟 Html: <!doctype html> <html> <head> <meta charset="UTF-8&q ...
- JavaScript电子时钟+倒计时
JavaScript时间类 获取时分秒: getHours() getMinutes(); getSeconds(); 获取 ...
- 桌面小部件----LED电子时钟实现
桌面控件是通过 Broadcast 的形式来进行控制的,因此每个桌面控件都对应于一个BroadcastReceiver.为了简化桌面控件的开发,Android 系统提供了一个 AppWidgetPro ...
- Qt - 与众不同的电子时钟
Qt的电子时钟是个老掉牙的demo了,但是利用lcdNumber显示的样子非常老土(下图第一个显示效果),一看就知道是从qt帮助文档里摘出来的example,毫无新意. 美化一下系统时钟,抛开固有控 ...
- [TPYBoard-Micropython之会python就能做硬件 3] 制作电子时钟
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.本次实验所需器材 1.TPYboard V102板 一块 2.DS3231 ...
- 3分钟利用TurnipBit制作电子时钟
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 TurnipBit(www.turnipbit.com)是一个面向青少年的开发板 ...
随机推荐
- TX Textcontrol 使用总结六——常用属性设置
1.字体设置 Tx textcontrol字体设置以版本22为例,直接设置FontSize =int,字体大小将小于正常其他控件字体设置.应做如下处理(仅供参考) this.textControl1. ...
- git设置代理
git config --global https.proxy http://127.0.0.1:1080 git config --global https.proxy https://127.0. ...
- Makefile选项CFLAGS,LDFLAGS,LIBS
CFLAGS 表示用于 C 编译器的选项, CXXFLAGS 表示用于 C++ 编译器的选项.这两个变量实际上涵盖了编译和汇编两个步骤. CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS ...
- 通过FTP自动上传当天的备份数据
@echo off del f:\ftpcfg.txt echo open 192.168.123.2>f:\ftpcfg.txt echo WMS>>f:\ftpcfg.txt e ...
- 第一次正式java web开发项目的总结
去年下半年到现在,因为公司人员流动,也有好几个新进的员工分给我来带领,也有刚从学校出来的,在和他们交流的过程中,不由的想起自己刚刚进入这行的一些感想. 记得自己当初写过一篇总结的,我想这些对于刚出校门 ...
- ios8 ios7 tableview cell 分割线左对齐
ios8中左对齐代码 //加入如下代码 -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cel ...
- C++11的新类型转换方法
转载自 http://blog.csdn.net/luoweifu/article/details/20493177 基于C++11标准 如果你用的编译器是基于最新的C++11标准,那么这个问题就变的 ...
- Hadoop MapReduce编程学习
一直在搞spark,也没时间弄hadoop,不过Hadoop基本的编程我觉得我还是要会吧,看到一篇不错的文章,不过应该应用于hadoop2.0以前,因为代码中有 conf.set("map ...
- HTTP 1.1与HTTP 1.0的比较
HTTP 1.1与HTTP 1.0的比较 一个WEB站点每天可能要接收到上百万的用户请求,为了提高系统的效率,HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个 ...
- java反射机制详解 及 Method.invoke解释
JAVA反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的信息以及动态调用对象的方法的功能称为ja ...