为什么 Date() returns 错误的日期?
Why Date() returns wrong date?
我有以下功能:
public static addDaysNextPrev(operation: number, date: Date = new Date(), days: number = 7): IDateCalendarNextPrev {
const currentDate = new Date(date);
const prevDate = new Date(date);
currentDate.setDate(currentDate.getDate() + (days * operation));
prevDate.setDate(currentDate.getDate() - (days * operation));
console.log(prevDate);
}
我尝试 add/minus 从当前日期开始的几天。想法是将当前日期和 return 上一个日期和下一个日期相加 7 天。
参数 operation
是数字 1
或正数或负数,用于确定下一日期或上一日期的方向。
我总是排错日期:
console.log(prevDate);
这是我的第二个解决方案,更明显的是:
public static addDaysNextPrev(operation: boolean, date: Date = new Date(), days: number = 7): IDateCalendarNextPrev {
let currentDate = new Date(date);
let prevDate = new Date(date);
if (operation) {
prevDate = date;
currentDate.setDate(currentDate.getDate() + days);
} else {
currentDate.setDate(date.getDate() - days);
prevDate.setDate(currentDate.getDate() - days);
}
}
您正在向 currentDate
添加 7 天:
currentDate.setDate(currentDate.getDate() + (days * operation));
并在行中减去 currentDate
的 7 天:
prevDate.setDate(currentDate.getDate() - (days * operation));
因此您的 prevDate
将具有与 currentDate
初始值相同的值。
此处更正:
let operation = 1;
let date: Date = new Date();
let days: number = 7
const currentDate = new Date(date);
const prevDate = new Date(date);
prevDate.setDate(currentDate.getDate() - (days * operation));
console.log(prevDate);
我有以下功能:
public static addDaysNextPrev(operation: number, date: Date = new Date(), days: number = 7): IDateCalendarNextPrev {
const currentDate = new Date(date);
const prevDate = new Date(date);
currentDate.setDate(currentDate.getDate() + (days * operation));
prevDate.setDate(currentDate.getDate() - (days * operation));
console.log(prevDate);
}
我尝试 add/minus 从当前日期开始的几天。想法是将当前日期和 return 上一个日期和下一个日期相加 7 天。
参数 operation
是数字 1
或正数或负数,用于确定下一日期或上一日期的方向。
我总是排错日期:
console.log(prevDate);
这是我的第二个解决方案,更明显的是:
public static addDaysNextPrev(operation: boolean, date: Date = new Date(), days: number = 7): IDateCalendarNextPrev {
let currentDate = new Date(date);
let prevDate = new Date(date);
if (operation) {
prevDate = date;
currentDate.setDate(currentDate.getDate() + days);
} else {
currentDate.setDate(date.getDate() - days);
prevDate.setDate(currentDate.getDate() - days);
}
}
您正在向 currentDate
添加 7 天:
currentDate.setDate(currentDate.getDate() + (days * operation));
并在行中减去 currentDate
的 7 天:
prevDate.setDate(currentDate.getDate() - (days * operation));
因此您的 prevDate
将具有与 currentDate
初始值相同的值。
此处更正:
let operation = 1;
let date: Date = new Date();
let days: number = 7
const currentDate = new Date(date);
const prevDate = new Date(date);
prevDate.setDate(currentDate.getDate() - (days * operation));
console.log(prevDate);