javascript Date類的擴展

xdfr 10年前發布 | 2K 次閱讀 JavaScript

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
<html xmlns="http://www.w3.org/1999/xhtml&quot; >
<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(minute60); }; 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></pre>

 本文由用戶 xdfr 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!