在review代码的时候,发现错误。
系统认为2004-08-01 早于2004-07-29
观察代码并进行调试,发现时间判断时使用的如下代码:
?
??var e = document.form1.effectedTime;
??var e1 = document.form1.expiredTime;
??var d = new Date(e.value.substring(0,4),parseInt(e.value.substring(5,7))-1,e.value.substring(8,10));
??var d1 = new Date(e1.value.substring(0,4),parseInt(e1.value.substring(5,7))-1,e1.value.substring(8,10));
??var dn = new Date();
??if(d > d1) {
???alert("失效时间必须比起效时间晚");
???return false;
??}
但是javascript对0开头的字符串会默认为8进制,如同0x开头的默认为16进制。
导致
parseInt("07")=7
parseInt("08")=0
parseInt("09")=0
parseInt("10")=10
结果发生上述错误。
?
请大家使用parseInt的时候,指定进制
parseInt("08",10)=8
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=55261