您的位置:首页 > Web前端 > JavaScript

js入门(4)——关于时间选择列表,date和select

2013-05-16 15:30 381 查看
今天遇到一个题目,用户通过页面的下拉列表来设置两个日期,我们根据这两个日期计算出相差的天数

(没有考虑大月和小月,侧重点是说明下拉列表框和onchange事件处理器的使用)



为了方便用户,开始的默认日期为系统当前日期。

代码:

<script type="text/javascript">

function theday(start,end){

for(var i=start;i<=end;i++){

document.write("<option value="+i+">"+i);

}

}

function themonth(){

var date=new Date();

for(var i=0;i<12;i++){

date.setMonth(i);

var month=date.toString();

month=month.substr(4,3);

document.write("<option value="+month+">"+month);

}

}

function setdate(){

var form=document.form1;

var date=new Date();

form.day1.options[date.getDate()-1].selected=true;

form.month1.options[date.getMonth()].selected=true;

form.year1.options[date.getFullYear()-1970].selected=true;

form.day2.options[date.getDate()-1].selected=true;

form.month2.options[date.getMonth()].selected=true;

form.year2.options[date.getFullYear()-1970].selected=true;

}

function xiangge(){

var form=document.form1;

var d1=form.day1.options[form.day1.selectedIndex].value;

alert(typeof(d1));

var m1=form.month1.options[form.month1.selectedIndex].value;

var y1=form.year1.options[form.year1.selectedIndex].value;

var date1=new Date(d1[b]+" "+
m1+" "+y1); //开始的时候我没有加" ",出现了错误,

alert(date1);
//没加“”,输出的date1是Invalid Date即无效的日期

var d2=form.day2.options[form.day2.selectedIndex].value;

var m2=form.month2.options[form.month2.selectedIndex].value;

var y2=form.year2.options[form.year2.selectedIndex].value;

var date2=new Date(d2+" "+m2+" "+y2);

var cha=Math.floor((((Math.abs(date1.valueOf()-date2.valueOf())/1000)/60)/60)/24);

form.text.value=cha;

return true;

}

</script>

</head>

<body onload="return setdate()">

<form name="form1">

<select name="day1" onchange="return xiangge()">

<script type="text/javascript">

theday(1,31);

</script>

</select>

<select name="month1" onchange="return xiangge()">

<script type="text/javascript">

themonth();

</script>

</select>

<select name="year1" onchange="return xiangge()">

<script type="text/javascript">

theday(1970,2020);

</script>

</select>

<br />

<br />

<select name="day2" onchange="return xiangge()">

<script type="text/javascript">

theday(1,31);

</script>

</select>

<select name="month2" onchange="return xiangge()">

<script type="text/javascript">

themonth();

</script>

</select>

<select name="year2" onchange="return xiangge()">

<script type="text/javascript">

theday(1970,2020);

</script>

</select>

相差<input name="text" value="0" />天

</form>

</body>

[/b]

上网搜了一下,格式:

Date 对象用于处理日期和时间。
创建 Date 对象的语法:
var myDate=new Date()
Date 对象会自动把当前日期和时间保存为其初始值。
参数形式有以下5种:
new Date("month dd,yyyy hh:mm:ss");
new Date("month dd,yyyy");
new Date(yyyy,mth,dd,hh,mm,ss);
new Date(yyyy,mth,dd);
new Date(ms);
注意最后一种形式,参数表示的是需要创建的时间和GMT时间1970年1月1日之间相差的毫秒数。各种函数的含义如下:
month:用英文表示月份名称,从January到December
mth:用整数表示月份,从(1月)到11(12月)
dd:表示一个月中的第几天,从1到31
yyyy:四位数表示的年份
hh:小时数,从0(午夜)到23(晚11点)
mm:分钟数,从0到59的整数
ss:秒数,从0到59的整数
ms:毫秒数,为大于等于0的整数
如:
new Date("January 12,2006 22:19:35");
new Date("January 12,2006");
new Date(2006,0,12,22,19,35);
new Date(2006,0,12);
new Date(1137075575000);

但是上例中有变量的时候,只有new Date(d1+" "+m1+" "+y1); 可以使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: