请问:怎样用javascript判断日期的有效性,和比较两个时间的大小

yshawxp 2004-11-10 11:43:03
请问:怎样用javascript判断日期的有效性,和比较两个时间的大小

我有6个下拉列表框,用它们分别表示2个时间的“年,月,日”,
它们的列表项有相对应的年份,月份,天数

它们的ID为 ddlYear1 ddlMonth1 ddlDay1
ddlYear2 ddlMonth2 ddlDay2

1)用javascript怎样,校验由 ddlYear1 ddlMonth1 ddlDay1所组成的“年月日”,是否为有效的时间,如“2004年2月31日”为无效的时间了!

2)用ddlYear1 ddlMonth1 ddlDay1表示时间dt1,
用ddlYear2 ddlMonth2 ddlDay2表示时间dt2,
用js怎样比较dt1和dt2的大小?

谢谢!
...全文
397 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
shyslysky 2004-11-10
  • 打赏
  • 举报
回复
比较dt1和dt2的大小
var dt1=new Date(2004,11,10)
var dt2=new Date(2004,11,11)

if(dt1.getTime()>dt2.getTime())alert('dt1>dt2')
else if (dt1.getTime()<dt2.getTime())alert('dt1<dt2')
else alert('dt1=dt2')
shyslysky 2004-11-10
  • 打赏
  • 举报
回复
function strDateTime(str)//str是否为有效的时间
{
var r = str.match(/^(\d{1,4})年(\d{1,2})月(\d{1,2})日$/);
if(r==null)return false;
var d= new Date(r[1], r[2]-1, r[3]);
return (d.getFullYear()==r[1] && (d.getMonth()+1)==r[2] && d.getDate()==r[3]);
}
JK_10000 2004-11-10
  • 打赏
  • 举报
回复
另:年月日选择框,以供参考:

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>年月日Select</title>
</head>

<body onload="changeDays();">
<form action="" method=get>
年月日选择框:<br>
<select name=year onchange="changeDays()" >
<option value=2000>2000<option value=2001>2001<option value=2002>2002<option value=2003>2003
</select>
<select name=month onchange="changeDays()">
<option value=0>1<option value=1>2<option value=2>3<option value=3>4<option value=11>12
</select>
<select name=day >
<option value=1>1
<option value=2>2
<option value=3>3
<option value=4>4
<option value=5>5
<option value=6>6
<option value=7>7
<option value=8>8
<option value=9>9
<option value=10>10
<option value=11>11
<option value=12>12
<option value=13>13
<option value=14>14
<option value=15>15
<option value=16>16
<option value=17>17
<option value=18>18
<option value=19>19
<option value=20>20
<option value=21>21
<option value=22>22
<option value=23>23
<option value=24>24
<option value=25>25
<option value=26>26
<option value=27>27
<option value=28>28
<option value=29>29
<option value=30>30
<option value=31>31
</select><br>
<a href="about:blank">about:blank</a>
</form>
</body>

</html>
<script language=javascript>
function changeDays()
{
var theMonthDays=(new Date(document.all.year.value,document.all.month.value*1+1,0)).getDate(); //得到该月份的天数
if(document.all.day.value>theMonthDays)
document.all.day.value=theMonthDays; //如果日期过大,则选择最大可能日期
for(var i=document.all.day.length+1;i<=theMonthDays;i++) //加上不足的天option
{
var newOption=new Option(i,i);
document.all.day.add(newOption);
}
for(var i=document.all.day.length;i>theMonthDays;i--) //删除多余的天option
{
document.all.day.remove(i-1);
}
}
</script>
shyslysky 2004-11-10
  • 打赏
  • 举报
回复
function strDateTime(str)//str是否为有效的时间
{
var r = str.match(/^(\d{1,4})年(\d{1,2})月(\d{1,2})日$/);
if(r==null)return false;
var d= new Date(r[1], r[3]-1, r[4]);
return (d.getFullYear()==r[1] && (d.getMonth()+1)==r[3] && d.getDate()==r[4]);
}
JK_10000 2004-11-10
  • 打赏
  • 举报
回复
if( ddlDay1 > (new Date(ddlYear1,ddlMonth1+1,0)).getDate() ) alert("Date1 is error");

if( (new Date(ddlYear1,ddlMonth1,ddlDay1)) > (new Date(ddlYear2,ddlMonth2,ddlDay2)) )
alert("Date1 > Date2")
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2004-11-10 11:43
社区公告
暂无公告