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]
上网搜了一下,格式:
但是上例中有变量的时候,只有new Date(d1+" "+m1+" "+y1); 可以使用
(没有考虑大月和小月,侧重点是说明下拉列表框和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); 可以使用
相关文章推荐
- 关于JS下拉列表选择时间计算时间周期的问题解决
- js入门·表单元素(select下拉列表)制作二级联动菜单和网站导航
- 关于sql视图--定义视图的查询不能包含order by子句,除非在select 语句的选择列表中还有top子句---问题解决
- 日期时间选择插件 - laydate.js
- Vue.js入门学习--选择菜单select的绑定(七)
- laydate.js时间选择
- Jq和JS实现下拉列表左右选择(时间)
- laydate.js日期时间选择插件
- js入门·表单元素(select下拉列表)制作二级联动菜单和网站导航 .txt
- JS+CSS和图片美化下拉列表选择框(select)
- select选择框通过js触发change事件
- js 时间 时分秒选择
- JS 实现列表与多选框选择
- 关于SimpleDateFormat安全的时间格式化线程安全问题
- java关于时间的操作Date与Calendar的使用
- 关于date中时间字符串的格式
- C#DateTime时间与JS Date时间的相互转化(C#后台)
- JS 时间格式为/Date(1332919782070)/ 转化为正常的格式
- 选择数据selectdate的使用
- Jquery 酷炫 用户 选择效果(js 实现带图片的 select 效果)