JS日期操作方法扩展
Date.prototype.format = function (fmt) {
var o = {
"M+": this.getMonth() + 1,
"d+": this.getDate(),
"h+": this.getHours(),
"m+": this.getMinutes(),
"s+": this.getSeconds(),
"q+": Math.floor((this.getMonth() + 3) / 3),
"S": this.getMilliseconds()
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
Date.prototype.compareDate = function (minValue, maxValue) {
var dateValue = this;
if (minValue != null) {
if (typeof minValue == "string") {
minValue = minValue.toDate();
}
if (dateValue < minValue) {
return false;
}
}
if (maxValue != null) {
if (typeof maxValue == "string") {
maxValue = maxValue.toDate();
}
if (dateValue > maxValue) {
return false;
}
}
return true;
}
Date.prototype.addYear = function (year) {
this.setFullYear(this.getFullYear() + year);
return this;
}
Date.prototype.addMonth = function (month) {
this.setMonth(this.getMonth() + month);
return this;
}
Date.prototype.addDay = function (day) {
this.setDate(this.getDate() + day);
return this;
}
Date.prototype.addHour = function (hour) {
this.setHours(this.getHours() + hour);
return this;
}
Date.prototype.addMinute = function (minute) {
this.setMinutes(this.getMinutes() + minute);
return this;
}
Date.prototype.addSecond = function (second) {
this.setSeconds(this.getSeconds() + second);
return this;
}
Date.prototype.getDiffYear = function (date) {
if (typeof date == "string") {
date = date.toDate();
}
return Math.abs(this.getFullYear()-date.getFullYear());
}
Date.prototype.getDiffMonth = function (date) {
if (typeof date == "string") {
date = date.toDate();
}
return Math.abs((this.getFullYear() - date.getFullYear()) * 12 + (this.getMonth() - date.getMonth()));
}
Date.prototype.getDiffDay = function (date) {
if (typeof date == "string") {
date = date.toDate();
}
return Math.floor(Math.abs((this.getTime()-date.getTime())/(24*60*60*1000)));
}
Date.prototype.getDiffHour = function (date) {
if (typeof date == "string") {
date = date.toDate();
}
return Math.floor(Math.abs((this.getTime() - date.getTime()) / (60 * 60 * 1000)));
}
Date.prototype.getDiffMinute = function (date) {
if (typeof date == "string") {
date = date.toDate();
}
return Math.floor(Math.abs((this.getTime() - date.getTime()) / (60 * 1000)));
}
Date.prototype.getDiffSecond = function (date) {
if (typeof date == "string") {
date = date.toDate();
}
return Math.floor(Math.abs((this.getTime() - date.getTime()) / 1000));
}