日期转换成指定格式字符串
Date.prototype.Format = function (patten) {
if (/(yyyy)/g.test(patten)) {
patten = patten.replace(RegExp.$1, this.getFullYear());
}
else if (/(yy)/g.test(patten)) {
patten = patten.replace(RegExp.$1, this.getFullYear().toString().substr(2, 2));
}
else if (/(y)/g.test(patten)) {
patten = patten.replace(RegExp.$1, this.getFullYear());
}
if (/(MM)/g.test(patten)) {
patten = patten.replace(RegExp.$1, ('0' + (this.getMonth() + 1)).slice(-1 * 2));
}
else if (/(M)/g.test(patten)) {
patten = patten.replace(RegExp.$1, (this.getMonth() + 1));
}
if (/(dd)/g.test(patten)) {
patten = patten.replace(RegExp.$1, ('0' + this.getDate()).slice(-1 * 2));
}
else if (/(d)/g.test(patten)) {
patten = patten.replace(RegExp.$1, this.getDate());
}
if (/(HH)/g.test(patten)) {
patten = patten.replace(RegExp.$1, ('0' + this.getHours()).slice(-1 * 2));
}
else if (/(H)/g.test(patten)) {
patten = patten.replace(RegExp.$1, this.getHours());
}
if (/(mm)/g.test(patten)) {
patten = patten.replace(RegExp.$1, ('0' + this.getMinutes()).slice(-1 * 2));
}
else if (/(m)/g.test(patten)) {
patten = patten.replace(RegExp.$1, this.getMinutes());
}
if (/(ss)/g.test(patten)) {
patten = patten.replace(RegExp.$1, ('0' + this.getSeconds()).slice(-1 * 2));
}
else if (/(s)/g.test(patten)) {
patten = patten.replace(RegExp.$1, this.getSeconds());
}
if (/(f+)/g.test(patten)) {
patten = patten.replace(RegExp.$1, this.getMilliseconds());
}
return patten;
}
判断日期是否为闰年
Date.prototype.IsLeapyearr = function () {
let year = this.getFullYear();
return (year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0);
}
日期增加及减少
Date.prototype.AddYears = function (increase) {
let year = this.getFullYear();
let oldDate = this.Format('yyyy-MM-dd HH:mm:ss')
let newDate = oldDate.replace(year.toString(), (year + increase).toString());
return new Date(newDate);
}
Date.prototype.AddMonths = function (increase) {
let year = this.getFullYear();
let month = this.getMonth() + 1 + increase;
let day = this.getDate();
if (month > 12) {
let increaseYear = Math.floor(month / 12);
year += increaseYear;
month = month % 12;
}
let bigMonth = [1, 3, 5, 7, 8, 10, 11, 12];
if (bigMonth.indexOf(month) == -1 && day > 28) {
if (month == 2) {
let leapYear = (year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0);
day = leapYear ? 29 : 28;
}
else {
day = day == 31 ? 30 : day;
}
}
let hour = this.getHours();
let minute = this.getMinutes();
let second = this.getSeconds();
let date = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
return new Date(date);
}
Date.prototype.AddDays = function (increase) {
let time = this.getTime();
return new Date(time + increase * 86400000);
}
Date.prototype.AddHours = function (increase) {
let time = this.getTime();
return new Date(time + increase * 3600000)
}
Date.prototype.AddMinutes = function (increase) {
let time = this.getTime();
return new Date(time + increase * 60000)
}
Date.prototype.AddSeconds = function (increase) {
let time = this.getTime();
return new Date(time + increase * 1000)
}