gpt4 book ai didi

JavaScript 日期,周日

转载 作者:行者123 更新时间:2023-11-28 13:32:39 26 4
gpt4 key购买 nike

我有一个 JavaScript 函数,可以确定工作日的下一个日期。除周日外,它全天都有效。

For Sunday:
Sun May 25 2014
Sun Jun 08 2014
Sun Jun 22 2014

For Saturday:
Sat May 24 2014
Sat May 31 2014
Sat Jun 07 2014
Sat Jun 14 2014

jsfiddle !

function getDatesByweekDay(weekday){
var startdate = new Date();
var date2 = new Date();
lastday = new Date(date2.setDate(date2.getDate() + 28 + weekday - date2.getDay()));
var dates = Array();
var x = 0;
do {
startdate = new Date(startdate.setDate(startdate.getDate() + 7 + weekday - startdate.getDay()));
console.log(startdate);
var date = new Date();
var curr_date = startdate.getDate();
var curr_month = startdate.getMonth() + 1;
var curr_year = startdate.getFullYear();

var formattedDate = curr_year + "-" + curr_month + "-" + curr_date;

dates[x] = formattedDate;
x++;
} while(lastday > startdate);

return dates;
}

getDatesByweekDay(6);

最佳答案

它不起作用的原因是您在每周 7 天的第 8 天去世。如果您传入 14-20 之间的数字,则返回日期之间会跳过两周而不是一周。

问题与您的 do...while 的第一行有关:

startdate = new Date(startdate.setDate(startdate.getDate() + 7 + weekday - startdate.getDay()));

您添加 7 使其提前 1 周,加上工作日,减去开始日期的星期几。如果您的 weekday 变量为 1 周或更长,则它会将其提前一周以上。由于它应该是 0 到 6 之间的数字,而您传入​​的是 7,因此您遇到了此错误。

您可以通过几种不同的方法来解决这个问题,但只需将输入weekday规范化为 0-6 之间的数字即可解决该问题。在函数开头附近添加 weekday = weekday % 7;

关于JavaScript 日期,周日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23702448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com