|
@@ -8,11 +8,11 @@ export class DayUts {
|
|
|
private _date: Date;
|
|
private _date: Date;
|
|
|
|
|
|
|
|
constructor(date?: Date | string | number | null) {
|
|
constructor(date?: Date | string | number | null) {
|
|
|
- if (date === null) {
|
|
|
|
|
|
|
+ if (date == null || date == "") {
|
|
|
this._date = new Date();
|
|
this._date = new Date();
|
|
|
- } else if (typeof date === "string") {
|
|
|
|
|
|
|
+ } else if (typeof date == "string") {
|
|
|
this._date = new Date(date);
|
|
this._date = new Date(date);
|
|
|
- } else if (typeof date === "number") {
|
|
|
|
|
|
|
+ } else if (typeof date == "number") {
|
|
|
this._date = new Date(date);
|
|
this._date = new Date(date);
|
|
|
} else if (date instanceof Date) {
|
|
} else if (date instanceof Date) {
|
|
|
this._date = new Date(date.getTime());
|
|
this._date = new Date(date.getTime());
|
|
@@ -74,7 +74,7 @@ export class DayUts {
|
|
|
/**
|
|
/**
|
|
|
* 获取某个单位的开始时间
|
|
* 获取某个单位的开始时间
|
|
|
*/
|
|
*/
|
|
|
- startOf(unit: "month" | "day" | "year"): DayUts {
|
|
|
|
|
|
|
+ startOf(unit: "month" | "day" | "year" | "week"): DayUts {
|
|
|
const newDate = new Date(this._date.getTime());
|
|
const newDate = new Date(this._date.getTime());
|
|
|
|
|
|
|
|
switch (unit) {
|
|
switch (unit) {
|
|
@@ -93,6 +93,13 @@ export class DayUts {
|
|
|
newDate.setSeconds(0);
|
|
newDate.setSeconds(0);
|
|
|
newDate.setMilliseconds(0);
|
|
newDate.setMilliseconds(0);
|
|
|
break;
|
|
break;
|
|
|
|
|
+ case "week":
|
|
|
|
|
+ newDate.setDate(newDate.getDate() - newDate.getDay());
|
|
|
|
|
+ newDate.setHours(0);
|
|
|
|
|
+ newDate.setMinutes(0);
|
|
|
|
|
+ newDate.setSeconds(0);
|
|
|
|
|
+ newDate.setMilliseconds(0);
|
|
|
|
|
+ break;
|
|
|
case "day":
|
|
case "day":
|
|
|
newDate.setHours(0);
|
|
newDate.setHours(0);
|
|
|
newDate.setMinutes(0);
|
|
newDate.setMinutes(0);
|
|
@@ -107,7 +114,7 @@ export class DayUts {
|
|
|
/**
|
|
/**
|
|
|
* 获取某个单位的结束时间
|
|
* 获取某个单位的结束时间
|
|
|
*/
|
|
*/
|
|
|
- endOf(unit: "month" | "day" | "year"): DayUts {
|
|
|
|
|
|
|
+ endOf(unit: "month" | "day" | "year" | "week"): DayUts {
|
|
|
const newDate = new Date(this._date.getTime());
|
|
const newDate = new Date(this._date.getTime());
|
|
|
|
|
|
|
|
switch (unit) {
|
|
switch (unit) {
|
|
@@ -120,7 +127,6 @@ export class DayUts {
|
|
|
newDate.setMilliseconds(999);
|
|
newDate.setMilliseconds(999);
|
|
|
break;
|
|
break;
|
|
|
case "month":
|
|
case "month":
|
|
|
- // 设置到下个月的第一天,然后减一天
|
|
|
|
|
newDate.setMonth(newDate.getMonth() + 1);
|
|
newDate.setMonth(newDate.getMonth() + 1);
|
|
|
newDate.setDate(0);
|
|
newDate.setDate(0);
|
|
|
newDate.setHours(23);
|
|
newDate.setHours(23);
|
|
@@ -128,6 +134,13 @@ export class DayUts {
|
|
|
newDate.setSeconds(59);
|
|
newDate.setSeconds(59);
|
|
|
newDate.setMilliseconds(999);
|
|
newDate.setMilliseconds(999);
|
|
|
break;
|
|
break;
|
|
|
|
|
+ case "week":
|
|
|
|
|
+ newDate.setDate(newDate.getDate() + 7);
|
|
|
|
|
+ newDate.setHours(23);
|
|
|
|
|
+ newDate.setMinutes(59);
|
|
|
|
|
+ newDate.setSeconds(59);
|
|
|
|
|
+ newDate.setMilliseconds(999);
|
|
|
|
|
+ break;
|
|
|
case "day":
|
|
case "day":
|
|
|
newDate.setHours(23);
|
|
newDate.setHours(23);
|
|
|
newDate.setMinutes(59);
|
|
newDate.setMinutes(59);
|
|
@@ -160,7 +173,7 @@ export class DayUts {
|
|
|
*/
|
|
*/
|
|
|
isSame(date: DayUts | Date | string | number): boolean {
|
|
isSame(date: DayUts | Date | string | number): boolean {
|
|
|
const compareDate = this._parseDate(date);
|
|
const compareDate = this._parseDate(date);
|
|
|
- return this._date.getTime() === compareDate.getTime();
|
|
|
|
|
|
|
+ return this._date.getTime() == compareDate.getTime();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -269,9 +282,9 @@ export class DayUts {
|
|
|
return date.toDate();
|
|
return date.toDate();
|
|
|
} else if (date instanceof Date) {
|
|
} else if (date instanceof Date) {
|
|
|
return date;
|
|
return date;
|
|
|
- } else if (typeof date === "string") {
|
|
|
|
|
|
|
+ } else if (typeof date == "string") {
|
|
|
return new Date(date);
|
|
return new Date(date);
|
|
|
- } else if (typeof date === "number") {
|
|
|
|
|
|
|
+ } else if (typeof date == "number") {
|
|
|
return new Date(date);
|
|
return new Date(date);
|
|
|
} else {
|
|
} else {
|
|
|
// 如果都不匹配,返回当前时间
|
|
// 如果都不匹配,返回当前时间
|