【发布时间】:2020-07-07 15:28:36
【问题描述】:
我想通过从中减去 3 天来计算 reminderDate。但是,如果结果日期
- 在星期六或星期日,它应该给出星期五的日期
- 在星期五,它应该给出星期四的日期
例如
Exchange Date ReminderDate
18.06.2020 -3 days = 15.06.2020 --> OK, because Monday
17.06.2020 -3 days = 14.06.2020 --> Sunday, must be changed to 12.06.2020
16.06.2020 -3 days = 13.06.2020 --> Saturday, must be changed to 12.06.2020
15.06.2020 -3 days = 11.06.2020 --> Friday, must be changed to 11.06.2020
我尝试了类似的方法,但 .getDay() 和 .day() 似乎都不起作用。而dt 似乎给出了今天的日期,而不是exchange 的日期。
var exchange = NWF$("#" + varAustauschtermin).val(); // date like 18.06.2020
console.log("Exchange: " + exchange);
var reminderDate = moment(exchange, "DD.MM.YYYY").format("DD.MM.YYYY");
var dt = new Date(reminderDate);
// var reminderDate = moment(exchange, "DD.MM.YYYY").subtract(3, 'days').format("DD.MM.YYYY");
// console.log("reminderDate.day(): " + reminderDate.day());
// console.log("reminderDate.getDay(): " + reminderDate.getDay());
if(dt.getDay() == 6) { // Saturday
console.log("Saturday");
reminderDate = moment(exchange, "DD.MM.YYYY").subtract(1, 'days').format("DD.MM.YYYY");
} else if (dt.getDay() == 0) { // Sunday
console.log("Sunday");
reminderDate = moment(exchange, "DD.MM.YYYY").subtract(2, 'days').format("DD.MM.YYYY");
} else if (dt.getDay() == 5) { // Friday
console.log("Friday");
reminderDate = moment(exchange, "DD.MM.YYYY").subtract(1, 'days').format("DD.MM.YYYY");
} else {
console.log("Weekday");
reminderDate = moment(exchange, "DD.MM.YYYY").subtract(3, 'days').format("DD.MM.YYYY");
}
console.log("Reminder Date: " + reminderDate);
感谢任何帮助!
【问题讨论】:
-
你还没有说什么不起作用。另外,我认为您应该始终将中间日期存储为日期对象,而不是格式化字符串。仅在需要将其呈现为字符串时格式化为可打印字符串。
标签: javascript date datetime momentjs weekend