剑灵惊梦幻影武器哪买:javascript里面怎样比较这样的时间?

来源:百度文库 编辑:高考问答 时间:2024/05/05 06:00:06
比如,输入今天的日期2/16 /2006,
再输入一个新日期(文本框显示),当用户在文本框内输入出生月、日、年后,点“计算”。就可以得出实际年龄。。。

它的代码该怎么写呢?我写的如下,但是有错误,

</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

<script language="javascript">
<!--
function DateDemo(){
var d, s = "今天日期是: ";
d = new Date();
s += (d.getMonth() + 1) + "/";
s += d.getDate() + "/";
s += d.getYear();
document.write(s);
}
DateDemo();

function DateDemo2(){
m1 = month.value
m2 = date.value
m3 = year.value
s = m3+"/"+m2+"/"+m1;
a= new Date();
d = new Date(s);
alert(a-d)
}

//-->
</script>
<br>请输入你的出生日期(mm-dd-yy)
<input type="text" name="month" value="" size="2" maxlength="2" needs="">
<input type="text" name="date" value="" size="2" maxlength="2" needs="">
<input type="text" name="year" value="" size="4" maxlength="4" needs="">
<br>
<input type="button" value="计算" onclick="DateDemo2()" id="submitElement">
</body>
</html>

首先你不了解Javascript内表示时间的机制.在Javascript中,时间变量是一个数字,它是以1970年1月1日0时0分为起点,往后的时间都会化成与该时间相差的毫秒数,1970年以前的时间为负数,1970年以后为正数.所以你最后的一条语句(a-d)得到的是两个时间相差的毫秒数.

所以你还要做一下步骤.把alert(a-d)改为alert(Math.round((a-d)/(1000*3600*24*365)))

当然你也可以这么做:
hour = 1000*3600;
day = hour * 24;
year = day * 365;
alert(Math.round((a-d)/year));