精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>网络专区>>● 网站建设>>盖世神功 — 网站建设技术>>Java Script — 来一杯热咖啡>>JavaScript 实作之时间倒数

主题:JavaScript 实作之时间倒数
发信人: microant()
整理人: microant(1999-08-02 12:13:50), 站内信件
以下内容来自网站建设版斑竹eagle的主页http://gzeagle.163.net,本人 
已经征得其转载许可,如果你需要转载请先和ealge联系

JavaScript 提供了一个日期对象,和处理这个对象的方法--日期方法。通过
这个对象和它的方法,我们可以: 

通过 dateObjectVariable = new Date() 创建一个内容为当前日期和时间
的对象。 
通过 dateObjectVariable = new Date("month day, year hours: 
minutes: seconds")制定一个日期对象 
确定当前的日期和时间 
对日期和时间进行设置和计算 
日期的方法有: 

getDate() 返回日期对象的日期值,1到31之间的数值 
getDay() 返回日期对象的星期数,0到6之间的数值,0代表Sunday, 1 代表
Monday, 如此类推 
getMonth() 返回日期对象的月分数,返回值从0到11,分别代表 Jan 到 
Dec 
getYear() 返回日期对象的年分数,返回值由年数减去1900得到 
getHours() 返回当前的小时数,返回值从0到23 
getMinutes() 返回日期对象的分钟数,返回值从0到59 
getSeconds() 返回日期对象的秒钟数,返回值从0到59 
getTime() 返回给定日期对象转化为从1970年1月1日00:00:00以来的毫秒数 
下面的方法刚好与上面介绍的相反,是设置日期对象的方法; 

settDate() 设置日期对象的日期值
调用方式:setDate(vDate),vDate 取值范围从1到31 
setMonth() 设置日期对象的月分数
调用方式:setMonth(vMonth),vMonth 取值范围从0到11 
setYear() 设置日期对象的年分数
调用方式:setMonth(vYear),vYear 是年数和1900年的差值 
setHours() 设置当前的小时数
调用方式:setHours(vHours),vHours 取值范围从0到23 
setMinutes() 设置日期对象的分钟数
调用方式:setMinuters(vMinutes),vMinutes 取值范围从0到59 
setSeconds() 设置日期对象的秒钟数
调用方式:setSeconds(vSeconds),vSeconds 取值范围从0到59 
setTime() 将给定的毫秒数转化为日期
调用方式:setTime(vTime),vTime代表是从1970年1月1日00:00:00以来的
毫秒数 

我们先来看看下面这个例子,它显示出当前的日期和时间,并计算出当前时间
和一个给定时间(2000年1月1日00:00:00)之间的时间差值。

今天的日期是:现在的时间是:

还剩天小时分秒2000年就来临了!

让我们一起来看看这是如何来实现的,JavaScript代码如下:
<script language="JavaScript">
<!-- hide script from old browser
var DifferenceHour = -1
var DifferenceMinute = -1
var DifferenceSecond = -1
var Tday = new Date("Jan 01, 2000 00:00:00")/*设置为2000年
1月1日00:00:00*/
var daysms = 24 * 60 * 60 * 1000 /*一天的毫秒数*/
var hoursms = 60 * 60 * 1000 /*一小时的毫秒数*/
var Secondms = 60 * 1000 /*一分钟的毫秒数*/
var microsecond = 1000 /*一秒的毫秒数*/
function clock()
{
var time = new Date() /*获得当前的时间对象*/
var year = time.getYear() /*读当前的年*/
var month = time.getMonth()+1 /*读当前月*/
var date = time.getDate() /*读当前的日*/
var whatdate=year + "年" + month + "月" + date + "日" /*得到当
前的年月日*/
var hour = time.getHours()/*读当前的小时*/
var minute = time.getMinutes()/*读当前的分钟*/
var second = time.getSeconds()/*读当前的秒*/
var timevalue = ""+((hour > 12) ? hour-12:hour) /*小时大于12就
                                                  减12*/
timevalue +=((minute < 10) ? ":0":":")+minute /*分钟小于10前面
加0*/
timevalue +=((second < 10) ? ":0":":")+second /*秒钟小于10前面
加0*/
timevalue +=((hour >12 ) ? " PM":" AM") /*得到当前的时分秒*/
document.formnow1.timenow.value = timevalue /*时分秒赋值给
                                          formnow1.timeonw*/
document.formnow1.datenow.value = whatdate/*年月日复制给
                                          formnow.datenow*/
var convertHour = DifferenceHour
var convertMinute = DifferenceMinute
var convertSecond = DifferenceSecond
var Diffms = Tday.getTime() - time.getTime() /*得到当前日期和倒
                                            数日期之间的差值*/
DifferenceHour = Math.floor(Diffms / daysms)/*求出相差的天数*/
Diffms -= DifferenceHour * daysms
DifferenceMinute = Math.floor(Diffms / hoursms)/*求出的小时数*/
Diffms -= DifferenceMinute * hoursms
DifferenceSecond = Math.floor(Diffms / Secondms)/*求出分钟数*/
Diffms -= DifferenceSecond * Secondms
var dSecs = Math.floor(Diffms / microsecond)/*求出秒钟数*/
if(convertHour != DifferenceHour)
document.formnow.dd.value=DifferenceHour /*天数赋值给formnow.dd*/
if(convertMinute != DifferenceMinute)
document.formnow.hh.value=DifferenceMinute/*小时数赋值给
                                          formnow.hh*/
if(convertSecond != DifferenceSecond)
document.formnow.mm.value=DifferenceSecond/*分钟数赋值给
                                            formnow.mm*/
document.formnow.ss.value=dSecs /*秒钟数赋值给formnow.ss*/
setTimeout("clock()",1000) /*每延时一秒执行一次clock*/
}
// end hiding -->
</script>

在望页中相关的代码如下:

<body onload="clock();return true"> /*打开网页的同时运行clock()*/

<form name="formnow1"> /*插入一个form, 显示当前的年月日时分秒*/
<div align="center"><center><p>今天的日期是:
<input type="text" name="datenow" size="11">现在的时间是:
<input type="text" name="timenow" size="11"></p>
</center></div>
</form>

<form name="formnow">/*插入一个form, 显示倒数的时间*/
<div align="center"><center><p>还剩
<input type="text" name="dd" size="2">天
<input type="text" name="hh" size="2">小时
<input type="text" name="mm" size="2">分
<input type="text" name="ss" size="2">秒2000年就来临了!</p>
</center></div>
</form>

注一:上面代码中/* ... */ 中的为笔者注解内容。

注二:更改JavaScript中的 
var Tday = new Date("Jan 01, 2000 00:00:00")的时间设定,就可
以实现对其他时间的倒数


--
                                   Microant(蚁不群)
活在理想、追求和拼搏中,尽管很累,但很快乐;
活在满足、虚荣和颓废中,尽管轻松,但却走向了灭亡!
就让我们残忍点对待自己吧,生活会给予我们回报的。

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.190.124]

[关闭][返回]