121 lines
4.1 KiB
JavaScript
121 lines
4.1 KiB
JavaScript
Date.addDays = function (date, days) {
|
|
let result = new Date(date);
|
|
|
|
result.addDays(days);
|
|
|
|
return result;
|
|
};
|
|
|
|
Date.addMonths = function (date, months) {
|
|
let result = new Date(date);
|
|
|
|
result.addMonths(months);
|
|
|
|
return result;
|
|
};
|
|
|
|
Date.addYears = function (date, years) {
|
|
let result = new Date(date);
|
|
|
|
result.addYears(years);
|
|
|
|
return result;
|
|
};
|
|
|
|
Date.max = function (date1, date2) {
|
|
if (date1 == null) {
|
|
return date2;
|
|
}
|
|
|
|
if (date2 == null) {
|
|
return date1;
|
|
}
|
|
|
|
return ((new Date(date1) <= new Date(date2)) ? new Date(date2) : new Date(date1));
|
|
};
|
|
|
|
Date.min = function (date1, date2) {
|
|
if (date1 == null) {
|
|
return date2;
|
|
}
|
|
|
|
if (date2 == null) {
|
|
return date1;
|
|
}
|
|
|
|
return ((new Date(date1) <= new Date(date2)) ? new Date(date1) : new Date(date2));
|
|
};
|
|
|
|
Date.diffDays = function (date1, date2) {
|
|
return Math.ceil((new Date(date2).getTime() - new Date(date1).getTime()) / (1000 * 3600 * 24));
|
|
};
|
|
|
|
Date.today = function () {
|
|
let result = new Date();
|
|
|
|
result.setHours(0);
|
|
result.setMinutes(0);
|
|
result.setSeconds(0);
|
|
result.setMilliseconds(0);
|
|
|
|
return result;
|
|
};
|
|
|
|
|
|
Date.prototype.addDays = function (days) {
|
|
this.setDate(this.getDate() + parseInt(days));
|
|
}
|
|
|
|
Date.prototype.addMonths = function (months) {
|
|
this.setMonth(this.getMonth() + parseInt(months));
|
|
}
|
|
|
|
Date.prototype.addYears = function (years) {
|
|
this.setFullYear(this.getFullYear() + parseInt(years));
|
|
}
|
|
|
|
Date.prototype.toCString = function(pattern) {
|
|
let result = pattern;
|
|
|
|
result = result.replace("fffffff", this.getMilliseconds().toString().padStart(7, '0'));
|
|
result = result.replace("ffffff", this.getMilliseconds().toString().padStart(6, '0'));
|
|
result = result.replace("fffff", this.getMilliseconds().toString().padStart(5, '0'));
|
|
result = result.replace("yyyy", this.getFullYear().toString().padStart(4, '0'));
|
|
result = result.replace("MMMM", "{1}");
|
|
result = result.replace("dddd", "{2}");
|
|
result = result.replace("ffff", this.getMilliseconds().toString().padStart(4, '0'));
|
|
result = result.replace("yyy", this.getFullYear().toString().padStart(3, '0'));
|
|
result = result.replace("MMM", "{3}");
|
|
result = result.replace("ddd", "{4}");
|
|
result = result.replace("fff", this.getMilliseconds().toString().padStart(3, '0'));
|
|
result = result.replace("zzz", "");
|
|
result = result.replace("yy", this.getFullYear().toString().slice(-2));
|
|
result = result.replace("MM", (this.getMonth() + 1).toString().padStart(2, '0'));
|
|
result = result.replace("dd", this.getDate().toString().padStart(2, '0'));
|
|
result = result.replace("HH", this.getHours().toString().padStart(2, '0'));
|
|
result = result.replace("hh", (this.getHours() > 12 ? (this.getHours() - 12) : this.getHours()).toString().padStart(2, '0'));
|
|
result = result.replace("mm", this.getMinutes().toString().padStart(2, '0'));
|
|
result = result.replace("ss", this.getSeconds().toString().padStart(2, '0'));
|
|
result = result.replace("ff", this.getMilliseconds().toString().padStart(2, '0'));
|
|
result = result.replace("tt", "{5}");
|
|
result = result.replace("zz", "");
|
|
result = result.replace("y", this.getFullYear().toString());
|
|
result = result.replace("M", (this.getMonth() + 1).toString());
|
|
result = result.replace("d", this.getDate().toString());
|
|
result = result.replace("H", this.getHours().toString());
|
|
result = result.replace("h", (this.getHours() > 12 ? (this.getHours() - 12) : this.getHours()).toString());
|
|
result = result.replace("m", this.getMinutes().toString());
|
|
result = result.replace("s", this.getSeconds().toString());
|
|
result = result.replace("z", "");
|
|
result = result.replace("t", "{6}");
|
|
result = result.replace("Z", "");
|
|
|
|
result = result.replace("{1}", this.toLocaleString('default', { month: 'long' }));
|
|
result = result.replace("{2}", this.toLocaleString('default', { weekday: 'long' }));
|
|
result = result.replace("{3}", this.toLocaleString('default', { month: 'short' }));
|
|
result = result.replace("{4}", this.toLocaleString('default', { weekday: 'short' }));
|
|
result = result.replace("{5}", (this.getHours() >= 12 ? "PM" : "AM"));
|
|
result = result.replace("{6}", (this.getHours() >= 12 ? "P" : "A"));
|
|
|
|
return result;
|
|
} |