中华网通行证
用户名 密码
  科技动态 硬件广场 下载基地 网络教室 网络冲浪 科学博览 移动时代 手机上网 桌面壁纸 科技商情  

网页电子时钟揭密
 冯永曜  黄山村夫

  在网页做一个小小电子时钟,给你的网页增加一点新意。本文介绍的电子时钟是可由用户控制的,若你喜欢它,就把它打开,若不喜欢它,可随时将它关闭。你可试试下面的例子。


  图1 显示时间


  图2 关闭时间显示

  实际上,这种动态效果,用Javascript来做,也用不了几行代码。编程思路:用一个时间函数不断地刷新单行文本框中的时间。然后用一个单选框来调用显示时间的程序,再用一个单选框来取消时间函数。我们知道Javascript的Date对象中不仅可获得当前日期。而且可以获得当前时间,关键的问题是如何把表示时间的数值分离出来,方法有多种,下面分别介绍。
  方法一:这种方法比较传统,但程序比较繁(不推荐)。程序代码如下:
<script language="Javascript">
<!--
function showtime(){
now=new Date(); //获取当前日期和时间,并赋给now;
H=now.getHours(); //从now 对象中分离出小时数;
M=now.getMinutes(); //从now 对象中分离出分钟数;
S=now.getSeconds(); //从now 对象中分离出秒数。
timestr=(H<10)?("0"+H):H; //如果小时数小于10,就给它加一个“0”,使其保持两位数。
timestr+=":"; //小时数后面加一个两点(“:”)的符号。
timestr+=(M<10>)?("0"+M):M; //如果分钟数小于10,就给它加一个“0”,使其保持两位数。
timestr+=":"; //分钟数后面加一个两点(“:”)的符号。
timestr+="(S<10)?("0"+S):S; //如果秒数小于10,就给它加一个“0”,使其保持两位数。
document.all["witch"].value=timestr; //把当前时间字符串赋给文本框(“witch”)的value属性,从而在文本框中显示当前时间。
ctroltime=setTimeout("showtime"),500); //设置一个定时函数,使得每0.5秒刷新一次文本框中显示的当前时间,从而达到电子时钟每秒跳一下的效果。
}
function closetime(){
clearTimeout(ctroltime) //取消定时函数,也就停止刷新文本框中的时间值,达到关闭时钟的效果。
}
-->
</script>
  在这段程序中,timestr=(H<10)?("0"+H):H;语句是if语句的缩写形式,它与if (H<10) timestr="0"+H else timestr=H;语句的作用完全相同。另外“+=”运算符的作用是:把两个操作数相加再把结果赋给左操作数,如:timestr+=":";与“timestr=timestr+":"”语句完全等效。

  方法二、这种方法比上面的方法简单多了。程序代码如下:
<script languae="JavaScript">
<!--
function showtime(){
var i=0; // 声明一个变量,用于放置的值
now=new Date(); //获取当前日期和时间
timestr=now.toLocaleString(); //把当前时间转换成字符形式
i=timestr.indexOf(":"); // 找出“:”的位置。
nowtime=timestr.substring(i-2,i+6) //把“:”所在位置的前两位到“:”位置后6位的所有字符取出来,实际上是把表示时间的字符串取出来。
document.all["witch"].value=nowtime; //此后的语句与方法一相同,不另解释。
ctroltime=setTimeout("showtime()",500);
}
function closetime(){
clearTimeout(ctroltime)
}
-->
</script>
  在这段程序中,使用日期对象的toLocaleString()方法,把日期转换在字符串形式,便于后面的操作;字符串对象的indexOf()方法的作用是找出给定字符在当前字符串的位置;字符串对象的substring(pos1,pos2)方法的作用是取得字符串的子串,pos1和pos2 分别是子中的起始位置和结束位置。

  方法三、这种方法所用代码最少,程序代码如下:
<script languae="JavaScript">
<!--
function showtime(){
now=new Date();
timestr=now.toLocaleString();
document.all["witch"].value=timestr.split(" ")[3];
ctroltime=setTimeout("showtime()",500);
}
function closetime(){
clearTimeout(ctroltime)
}
-->
</script>
  本方法的巧妙之处是采用了字符对象的分割字符串方法(split()),它的用法格式为:string1.split(string2)
  其作用是:将字符串string1按照string2进行分割,返回一个数组,分割后的内容按顺序放在数组中。在本方法中,就是把日期字符串按空格(" ")分割,这样分割后,时间字符串正好在数组的第四个下标变量中。由于该数组是从0开始起算的,所以把timestr.split(" ")[3];赋给文本框的value参数,若你感到这讲得太专业了,你直接把程序复制就行了。
  表单的代码如下:
<input type="text" name="witch" size="8" value="电子表">
<input type="radio" name="radiobutton" value="radiobutton" onclick="showtime()">显示时间
<input type="radio" name="radiobutton" value="radiobutton" onclick="closetime()">关闭时间显示

  本文电子时钟的制作方法:
  1、用表单按文中介绍的方法制作一个时钟样式,发挥你的创意,把它做得漂亮一点,如可加上背景图片;
  2、把程序复制在网页源代码的<head>与</head>之间,大功告成。
  本文列举三种方法的目的是想说明,实现同样的效果,方法是多样的,一种好的方法,将大减少代码的数量,是省时省力的好事,所以我们要灵活应用我们所掌握的知识。


 赛迪网 


 

更多本栏目内容
??Windows 2000系统安全设置攻略
??Dreamweaver编写CSS需要掌握的技巧
??使用Flash MX过程中的3个小技巧
??拖IE9网站图标到Win7任务栏 精彩好礼任你拿
??从此不再耗流量?Google离线地图试用
??给瑞星添加移动存储自动杀毒功能
??一周壁纸榜单 靓丽风景伴您欢度周末
??金山网络七款软件齐升级 炫丽界面贺新春
??提升网站流量和权重 百度热榜排第一
预警:电商促销引钓鱼 七夕网购需谨慎

本站检索



中华网推荐

·国家级治脑病新药思维源
·中藏药治疗脑病新突破
·治类风湿,强直性脊柱炎
·养肾·痛风·长寿
·肝病泌尿脑萎缩新药介绍
·强直性脊柱炎康复乐园
·让中医辩证不孕不育
·国医治股骨头坏死一绝
·乙肝为何久治不愈?
·二千元垄断批发做老板
·中医中药专治前列腺
·治牛皮癣白癜风已成现实
·专治痛风病的白衣天使
·不孕不育的杏林奇葩
·专卖店零售管理系统





   

网络教室编辑信箱