LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

JavaScript版IsDate、DateAdd和DateDiff函数

admin
2011年3月10日 23:37 本文热度 3106
VBScript的IsDate函数用于判断一个日期是否正确,JavaScript没有这个函数,我们也来写一个类似的函数。需要说明的是,JavaScript中IsDate的参数必须为字符串,且支持6种不同的格式"yyyy-mm-dd ││ yyyy/mm/dd ││ dd-mm-yyyy ││ dd/mm/yyyy ││ mm-dd-yyyy ││ mm/dd/yyyy",之所以不能使用日期作为参数是因为JavaScript根本没有不正确的日期,比如 new Date(2008,01,30),构造函数会自动将它转换成正确的日期2008-03-01。
 
JavaScript版IsDate函数如下:
function IsDate(dateval){
    var arr = new Array();
    
    if(dateval.indexOf("-") != -1){
        arr = dateval.toString().split("-");
    }else if(dateval.indexOf("/") != -1){
        arr = dateval.toString().split("/");
    }else{
        return false;
    }
    
    //yyyy-mm-dd ││ yyyy/mm/dd
    if(arr[0].length==4){
        var date = new Date(arr[0],arr[1]-1,arr[2]);
        if(date.getFullYear()==arr[0] && date.getMonth()==arr[1]-1 && date.getDate()==arr[2]){
            return true;
        }
    }
    //dd-mm-yyyy ││ dd/mm/yyyy
    if(arr[2].length==4){
        var date = new Date(arr[2],arr[1]-1,arr[0]);
        if(date.getFullYear()==arr[2] && date.getMonth()==arr[1]-1 && date.getDate()==arr[0]){
            return true;
        }
    }
    //mm-dd-yyyy ││ mm/dd/yyyy
    if(arr[2].length==4){
        var date = new Date(arr[2],arr[0]-1,arr[1]);
        if(date.getFullYear()==arr[2] && date.getMonth()==arr[0]-1 && date.getDate()==arr[1]){
            return true;
        }
    }
    
    return false;
}
 
 
VBScript中有两个非常好用的日期操作函数:DateAdd用来给日期添加指定时间间隔,DateDiff用来返回两个日期的时间间隔。可惜的是JavaScript没有,不过我们可以写一个函数来实现,一样的,呵呵。

DateAdd函数:
function DateAdd(interval,number,date){
  date = date.split(/\D/);    //date格式为yyyy-mm-dd hh:mm:ss
  --date[1];
  eval("var date = new Date("+date.join(",")+")");
    switch(interval.toLowerCase()){
        case "y": return new Date(date.setFullYear(date.getFullYear()+number));
        case "m": return new Date(date.setMonth(date.getMonth()+number));
        case "d": return new Date(date.setDate(date.getDate()+number));
        case "w": return new Date(date.setDate(date.getDate()+7*number));
        case "h": return new Date(date.setHours(date.getHours()+number));
        case "n": return new Date(date.setMinutes(date.getMinutes()+number));
        case "s": return new Date(date.setSeconds(date.getSeconds()+number));
        case "l": return new Date(date.setMilliseconds(date.getMilliseconds()+number));
    }
}

DateDiff函数:
function DateDiff(interval,date1,date2){
  date = date1.split(/\D/);
  --date[1];
  eval("var date1 = new Date("+date.join(",")+")");
  date = date2.split(/\D/);
  --date[1];
  eval("var date2 = new Date("+date.join(",")+")");
    var long = date2.getTime() - date1.getTime(); //相差毫秒
    switch(interval.toLowerCase()){
        case "y": return parseInt(date2.getFullYear() - date1.getFullYear());
        case "m": return parseInt((date2.getFullYear() - date1.getFullYear())*12 + (date2.getMonth()-date1.getMonth()));
        case "d": return parseInt(long/1000/60/60/24);
        case "w": return parseInt(long/1000/60/60/24/7);
        case "h": return parseInt(long/1000/60/60);
        case "n": return parseInt(long/1000/60);
        case "s": return parseInt(long/1000);
        case "l": return parseInt(long);
    }
}

该文章在 2011/3/11 14:50:54 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved