var inputs = document.getElementById("输入框ID").value.match(/\d+/g)
var result = 0
for(var i = 0 i < parseInt(inputs[1]) ++i)
result += (parseInt(inputs[0]) % 4 == 0 && i == 2 ? days[i] + 1 : days[i])
result += parseInt(inputs[2])
然后 result 存放的就是你要的结果
输入框的日期格式应该是 年/月/日
我建议你还是不要去判断吧,很麻烦的,自动给他转换吧,把平年的2月29直接转换为3月1日,把1月32转换为2月1日,例子代码如下:<input type=text onChange="chk_date(this)">
<script type=text/javascript>
function chk_date(f)
{
s=f.value.split('-')
y=parseInt(s[0])
m=parseInt(s[1])
d=parseInt(s[2])
if (isNaN(y) || isNaN(m) || isNaN(d)){alert("请正确填写日期(例如:2002-5-22)!")return false}
dd=new Date(y,m-1,d)
y=dd.getYear()
m=dd.getMonth()+1
d=dd.getDate()
f.value=y+'-'+m+'-'+d
alert(dd)
}
</script>
以上代码调试通过,如果你愿意,可以解决你的问题。
Code:<script language="javascript">//Format yyy-mm-dd
function dateCompare(date1,date2){
date1 = date1.replace(/\-/gi,"/")
date2 = date2.replace(/\-/gi,"/")
var time1 = new Date(date1).getTime()
var time2 = new Date(date2).getTime()
if(time1 >time2){
return 1
}else if(time1 == time2){
return 2
}else{
return 3
}
}//eg
alert(dateCompare("2011-08-27","2011-08-31"))
alert(dateCompare("2011-08-27","2011-8-08"))
alert(dateCompare("2011-8-27","2011-08-28"))
</script>代码中有三个比较样例,录入的日期保证是年月日即可,月、日不足两位的和一位的表达方式均兼容,你的需求只需要重复两次调用dateCompare即可判断出来,不过你需要控制日期的输入为年月日,因为不同国家和地域(大陆和香港的日期格式就有不同)的日期格式不一致