javascript 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>

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/9991.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论