Javascript综合手册
1.Javascript一维数组、二维数组
「一维数组」
1) var mycars=new Array()
mycars[0]="Saab" mycars[1]="Volvo" mycars[2]="BMW"
2) var mycars=new Array("Saab","Volvo","BMW")
3) var mycars=["Saab","Volvo","BMW"];
「二维数组」用一维数组来模拟
1) var arr = new Array(['a','b','c'],['d','e','f']);
2) arr=new Array(); for(i=0;i<100;i++) { arr[i]=new Array(...); }
3) var arr=new Array( new Array(), new Array(), new Array() );
2.截取最后一个字符
str1=str1.substr(0,str1.length-1);
3.ReplaceAll
str=str.replace(/,/g,""); //去掉所有逗号
4.浮点数计算误差
15.12*15=226.79999999999998
解决方式:(15.12*15).toFixed(2)=226.80
5.判断“截止日期必须晚于今天”[javascripts]
alert(Date.parse(('2011-5-31').replace('-','/'))>Date.parse(Date())Date();//系统的当前日期时间
Date.parse(date);//把日期时间转化为数值,转化后可以比较大小
('2011-5-31').replace('-','/');//javascript的Date函数不支持 "2011-5-31 " 写法
下面列举javascript的Date函数的写法支持情况:
new Date("2000/01/02");//输出Sun Jan 2 00:00:00 UTC+0800 2000 Date("2000/01/02");//输出Wed Dec 05 10:18:33 2007,此处输出的是系统的当前时间 new Date("2000-01-02");//输出NaN Date("2000-01-02");//输出Wed Dec 05 10:18:33 2007,此处输出的是系统的当前时间
6.日期加减
function dateDiff(interval, date1, date2) { var objInterval = {'D' : 1000 * 60 * 60 * 24, 'H' : 1000 * 60 * 60, 'M' : 1000 * 60, 'S' : 1000, 'T' : 1}; interval = interval.toUpperCase(); var dt1 = Date.parse(date1.replace(/-/g, '/')); var dt2 = Date.parse(date2.replace(/-/g, '/')); try { return Math.round((dt2 - dt1) / eval('(objInterval.' + interval + ')')); } catch (e) { return e.message; } }
调用实例:
var year0=document.getElementById("计划转正时间").value; var now=new Date(); var bnow=now.getFullYear()+"-1-1"; //本年第一天 var enow=now.getFullYear()+"-12-31"; //本年最后一天 var fnow=dateDiff('D',bnow,enow); //本年全年日期 var s=year0.split("-"); var yy0=parseInt(s[0]); var mm=parseInt(s[1]-1); var yy1=yy0+1; var yy10=yy0+10; var yy20=yy0+20; var dd=parseInt(s[2]); var zz1 = new Date(yy1,mm,dd); var zz10= new Date(yy10,mm,dd); var zz20=new Date(yy20,mm,dd); var year1=zz1.getFullYear()+"-"+(zz1.getMonth()+1)+"-"+zz1.getDate(); //转正1年 var year10=zz10.getFullYear()+"-"+(zz10.getMonth()+1)+"-"+zz10.getDate(); //转正10年 var year20=zz20.getFullYear()+"-"+(zz20.getMonth()+1)+"-"+zz20.getDate(); //转正20年 var day1=dateDiff('D', bnow, year1); //若已满1年,未满1年天数 var eday1=dateDiff('D', year1,enow ); //若已满1年,已满1年天数 var day10=dateDiff('D',bnow,year10); //若已满10年,未满10年天数 var eday10=dateDiff('D', year10, enow); //若已满10年,已满10年天数 var day20=dateDiff('D',bnow,year20); //若已满20年,未满20年天数 var eday20=dateDiff('D', year20, enow); if(day20<=0) //超过20年 { document.getElementById("共计年假").value='15'; } else if(day20>0 && day20<fnow) //本年内满20年转正,未满部分按10年计入年假,已满部分按20年计入年假 { document.getElementById("共计年假").value=parseInt(day20/365*10)+parseInt(eday20/365*15); } else if(day10<=0) //超过10年 { document.getElementById("共计年假").value='10'; } else if(day10>0 && day10<fnow) //本年内满10年转正,未满部分按1年计入年假,已满部分按10年计入年假 { document.getElementById("共计年假").value=parseInt(day10/fnow*5)+parseInt(eday10/fnow*10); } else if(day1<=0) //超过1年 { document.getElementById("共计年假").value='5'; } else if(day1>0 && day1<fnow) //已满1年转正,未满部分不计入年假,已满部分计入年假 { document.getElementById("共计年假").value=parseInt(eday1/fnow*5); }
调用实例2:
function setleaveday1() { var bdate=document.getElementById("结束时间").value; var now=new Date(); var cnow=now.getFullYear()+"-"+(now.getMonth()+1)+"-"+now.getDate(); var day1=dateDiff('D', cnow, bdate); if(day1<-2) { alert("请假申请日期不能大于过去2天!"); document.getElementById("结束时间").value=""; } }