javascript 常用的日期函数

来源:互联网 发布:资源搜索cms 编辑:程序博客网 时间:2024/05/22 10:57
 

//判断是否是日期

//note:不能准确判断闰年的2月日期,需用js另外处理

function isDate(str)
{
    var patt=/^(((([1-9])|(0[1-9])|(1[012]))[-./]((0?/d)|([12]/d)|(3[01]))[-./](19|20)/d{2})|((19|20)/d{2}[-./](([1-9])|(0[1-9])|(1[012]))[-./]((0?/d)|([12]/d)|(3[01]))))$/;
    return patt.test(str);
}

//返回系统日期时间

//参考http://blog.csdn.net/avon520/archive/2008/06/13/2544133.aspx

function getSystemDateTime()
{
    var now=new Date();
    //date
    var yyyy=now.getFullYear().toString();
    var month=now.getMonth()+1;//月份需+1运算
    var MM=month.toString().length==1?"0"+month.toString():month.toString();
    var dd=now.getDate().toString().length==1?"0"+now.getDate().toString():now.getDate().toString();
    //time
    var h=now.getHours().toString();
    var m=now.getMinutes().toString();
    var s=now.getSeconds().toString();
 
    return MM+"/"+dd+"/"+yyyy+" "+h+":"+m+":"+s ; // 09/25/2008 15:37:5
}

 

 

//日期计算

//返回date1-date2的天数

//note: 两个日期直接相减,返回的是相差的毫秒数。

 function  dateDiff(date1,date2)
 {
    if(date1>date2)
        return parseInt(Math.abs(date1-date2)/1000/60/60/24);
    else
        return 0-parseInt(Math.abs(date2-date1)/1000/60/60/24);
 }

 

 //返回指定的年月有多少天

function daysInMonth(iMonth, iYear)
{
    var days=0;
    if(iMonth==2)
    {
        if (iYear%4==0 && (iYear%100 !=0 || iYear%400 == 0))
            days = 29;      
        else                
            days = 28;                   
    }
    else
    {
      days = 32 - new Date(--iMonth, iMonth, 32).getDate();
    }
   
    return days;
}

 

//toStringFormat(FormatString)

Date.prototype.toStringFormat = function(FormatString)
{
    //date
    var yyyy=this.getFullYear().toString();
    var M=(this.getMonth()+1).toString();
    var MM=M.length==1?"0"+M:M;
    var d=this.getDate().toString();
    var dd=d.length==1?"0"+d:d;
    //time
    var h=this.getHours().toString();
    var hh=h.length==1?"0"+h:h;
    var m=this.getMinutes().toString();
    var mm=m.length==1?"0"+m:m;
    var s=this.getSeconds().toString();
    var ss=s.length==1?"0"+s:s;
    FormatString=FormatString.replace(/yyyy/g,yyyy);
    FormatString=FormatString.replace(/MM/g,MM);
    FormatString=FormatString.replace(/dd/g,dd);
    FormatString=FormatString.replace(/hh/g,hh);
    FormatString=FormatString.replace(/mm/g,mm);
    FormatString=FormatString.replace(/ss/g,ss);
    FormatString=FormatString.replace(/M/g,M);
    FormatString=FormatString.replace(/d/g,d);
    FormatString=FormatString.replace(/h/g,h);
    FormatString=FormatString.replace(/m/g,m);
    FormatString=FormatString.replace(/s/g,s);
    return FormatString;
}