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="";
}
}

 

 

posted on 2011-11-16 11:50  林枫山  阅读(408)  评论(0编辑  收藏  举报