【发布时间】:2022-11-20 04:17:45
【问题描述】:
菜鸟在这里。对不起,如果这个问题很愚蠢。 我正在为旅行目的编写脚本。 给定星期几,我需要获取出发日期的开始和结束日期。 以及给定开始/结束日期偏移量的退货日期; 调用函数后,出发日期也发生了变化。 我无法理解我的错误。请帮忙。
var departstart=getNextDayOfTheWeek(3,0);
console.log("Departure from " + departstart);
var departend=getNextDayOfTheWeek(3,0);
console.log("Departure to " + departend);
var returnstart=getoffday(3,departstart);
// check again depature
console.log("Departure from " + departstart);
// Has changed?!?!?!
console.log("Return from " + returnstart);
var returnend=getoffday(3,departstart);
console.log("Return to " + returnend);
// Gets a date of next day of the week
function getNextDayOfTheWeek(dayOfWeek, excludeToday = true, refDate = new Date()) {
refDate.setHours(0,0,0,0);
refDate.setDate(refDate.getDate() + +!!excludeToday +
(dayOfWeek + 7 - refDate.getDay() - +!!excludeToday) % 7);
return (refDate);
}
// Gets a date of diff day from given date
function getoffday(diff=0, workyday = new Date()) {
console.log("Inside function before execution " + workyday);
workyday.setHours(0,0,0,0);
workyday.setDate(workyday.getDate() + diff);
console.log("Inside function after execution " + workyday);
return (workyday);
}
我想也许我不应该在函数中使用参数并定义局部变量,但这没有帮助。
【问题讨论】:
-
日期函数调整日期,因此当您将日期传递给
getoffday()时,它会发生变化。
标签: javascript function date