前端人员的恨

最近在对公司OA系统做合并和更新,我发现顺利用了N年的一些js代码居然没有作用了~~比如日期验证之类~~

在重新测试的时候,发现了Date.parse(datestr)这个函数如果datestr的格式不对,在不同浏览器也是不同的表现

yyyy-mm-dd的格式 IE chorme FF ok safari 显示Nan

转换成了 yyyy/mm/dd 的格式就都有效,在目前的浏览器众多的情况下,用js 框架就不失为一个快捷的解决办法

 

比如Jquery: http://docs.jquery.com/UI/Datepicker/parseDate

function isDate(v) 
{ 
var r = v.match(/^(\d{1,4})(-|\/)(\d{1,2})\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]); 
}

function Dateok()
{
var start =document.getElementById("rest_start").value;
var end=document.getElementById("rest_end").value;

if (isDate(start))
{
if (isDate(end))
{
//因为各浏览对时间有效格式不同,所以要转换成yyyy/mm/dd 兼容chrome IE safari FF
start=start.replace("-", "/").replace("-", "/");
end=end.replace("-", "/").replace("-", "/");
if(Date.parse(start)-Date.parse(end)>0)
{
alert("起始日期不能晚于结束日期!");
return false;
}
else
{
alert((Date.parse(start)-Date.parse(end)).ToString());
return true;
} 


}
else
{
alert("结束日期有误,请用yyyy-mm-dd格式填写或选择!");
return false;
} 
}
else
{
alert("开始日期有误,请用yyyy-mm-dd格式填写或选择!");
return false;
}

}

 

 

 

posted on 2012-08-01 17:06  webmm  阅读(188)  评论(0编辑  收藏  举报