zoukankan      html  css  js  c++  java
  • javascript Date类的扩展

    大家可以看到js的date类的方法很少,而很少有人去扩展这个类,所以我就做了个扩展,供大家参考,欢迎大家补充。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        
    <title>datetime</title>
    </head>
    <body>

    <script language="javascript" type="text/javascript">
    Date.prototype.add 
    = function(milliseconds){
        
    var m = this.getTime() + milliseconds;
        
    return new Date(m);
    }
    ;
    Date.prototype.addSeconds 
    = function(second){
        
    return this.add(second * 1000);
    }
    ;
    Date.prototype.addMinutes 
    = function(minute){
        
    return this.addSeconds(minute*60);
    }
    ;
    Date.prototype.addHours 
    = function(hour){
        
    return this.addMinutes(60*hour);
    }
    ;

    Date.prototype.addDays 
    = function(day){
        
    return this.addHours(day * 24);
    }
    ;

    Date.isLeepYear 
    = function(year){
        
    return (year % 4 == 0 && year % 100 != 0)
    }
    ;

    Date.daysInMonth 
    = function(year,month){
        
    if(month == 2){
            
    if(year % 4 == 0 && year % 100 != 0)
                
    return 29;
            
    else
                
    return 28;
        }

        
    else if((month <= 7 && month % 2 == 1|| (month > 7 && month % 2 == 0))
            
    return 31;
        
    else
            
    return 30;
    }
    ;

    Date.prototype.addMonth 
    = function(){
        
    var m = this.getMonth();
        
    if(m == 11)return new Date(this.getFullYear() + 1,1,this.getDate(),this.getHours(),this.getMinutes(),this.getSeconds());
        
        
    var daysInNextMonth = Date.daysInMonth(this.getFullYear(),this.getMonth() + 1);
        
    var day = this.getDate();
        
    if(day > daysInNextMonth){
            day 
    = daysInNextMonth;
        }

        
    return new Date(this.getFullYear(),this.getMonth() + 1,day,this.getHours(),this.getMinutes(),this.getSeconds());    
    }
    ;

    Date.prototype.subMonth 
    = function(){
        
    var m = this.getMonth();
        
    if(m == 0)return new Date(this.getFullYear() -1,12,this.getDate(),this.getHours(),this.getMinutes(),this.getSeconds());
        
    var day = this.getDate();
        
    var daysInPreviousMonth = Date.daysInMonth(this.getFullYear(),this.getMonth());
        
    if(day > daysInPreviousMonth){
            day 
    = daysInPreviousMonth;
        }

        
    return new Date(this.getFullYear(),this.getMonth() - 1,day,this.getHours(),this.getMinutes(),this.getSeconds());
    }
    ;

    Date.prototype.addMonths 
    = function(addMonth){
        
    var result = false;
        
    if(addMonth > 0){
            
    while(addMonth > 0){
                result 
    = this.addMonth();
                addMonth 
    -- ;
            }

        }
    else if(addMonth < 0){
            
    while(addMonth < 0){
                result 
    = this.subMonth();
                addMonth 
    ++ ;
            }

        }
    else{
            result 
    = this;
        }

        
    return result;
    }
    ;

    Date.prototype.addYears 
    = function(year){
        
    return new Date(this.getFullYear() + year,this.getMonth(),this.getDate(),this.getHours(),this.getMinutes(),this.getSeconds());
    }
    ;



    var d = new Date();
    alert('d.addYears(
    2= ' + d.addYears(2).toLocaleString());
    alert('d.addMonths(
    2= ' + d.addMonths(2).toLocaleString());
    alert('d.addMonths(
    -2= ' + d.addMonths(-2).toLocaleString());

    alert('d.addDays(
    2= ' + d.addDays(2).toLocaleString());
    alert('d.addHours(
    2= ' + d.addHours(2).toLocaleString());
    alert('d.addMinutes(
    2= ' + d.addMinutes(2).toLocaleString());
    alert('d.addSeconds(
    2= ' + d.addSeconds(2).toLocaleString());
    </script>

    </body>
    </html>

    希望这个东西可以对大家有点用处。

  • 相关阅读:
    Linux的chattr与lsattr命令详解
    ls命令
    linux PS1
    which,whereis,locate,find
    linux下的文件结构
    Linux各种命令
    PHP将两个二维数组合并为一个二维数组的方法
    vagrant virtualbox VM inaccessible解决办法
    常用Mysql查询语句
    删除数组元素并重建索引的方法
  • 原文地址:https://www.cnblogs.com/yukaizhao/p/javascript_date_extend.html
Copyright © 2011-2022 走看看