Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取接下来3个月的星期四,并将日期输出到select_Javascript_Php_Jquery_Date_Getdate - Fatal编程技术网

Javascript 获取接下来3个月的星期四,并将日期输出到select

Javascript 获取接下来3个月的星期四,并将日期输出到select,javascript,php,jquery,date,getdate,Javascript,Php,Jquery,Date,Getdate,我需要获得接下来3个月的星期四的日期,然后将这些日期输出到select输入中,其值格式为dd/mm/yyyy,但选项显示为“2021年4月12日星期四”,最好是在jQuery中,但PHP也可以 <select> <option value="08/04/2021">Thursday 8th April 2021</option> <option value="15/04/2021">Thurs

我需要获得接下来3个月的星期四的日期,然后将这些日期输出到select输入中,其值格式为dd/mm/yyyy,但选项显示为“2021年4月12日星期四”,最好是在jQuery中,但PHP也可以

<select>
    <option value="08/04/2021">Thursday 8th April 2021</option>
    <option value="15/04/2021">Thursday 15th April 2021</option>
    <option value="22/04/2021">Thursday 22nd April 2021</option>
    etc
    etc
</select>

2021年4月8日星期四
2021年4月15日星期四
2021年4月22日星期四
等
等
我发现这是本月所有的星期四,但我需要它是下三个月的星期四,从今天开始。(如果今天是星期四,包括今天)


如果是从今天起的下一个12个星期四就可以了。

要获得下一个X月,您可以:

function getNextMonths(num, include_current = false) {

    let current = new Date();
    let months  = [];

    if (include_current) {

        months.push(current);
        num--;
    }

    for (let i = 1; i <= num; i++) {

        let next = new Date();

        next.setDate(1);
        next.setMonth(current.getMonth() + i);

        months.push(next);
    }

    return months;
}

console.log(getNextMonths(3)); // Gives you the next three months
函数getNextMonths(num,include\u current=false){ 让当前日期=新日期(); 让月份=[]; 如果(包括当前){ 月。推送(当前); num--; }
对于(让我=1;我会看一篇类似的文章(这篇文章是星期一的)这确实是一个问题:给一个日期加上3个月,得到下一个星期四,再加上一周(7天)对于日期,将日期格式设置为dd/mm/yyyy,以及如何向select添加选项。您至少需要添加一些代码来显示您是如何执行这些操作的。jQuery和PHP是完全不同的语言,因此您还应该选择要使用的语言(如果客户机/服务器时区差异不是问题,则可能是PHP)。看,。谢谢。我该如何将数组放入一个选择框中?遍历数组是非常基本的事情,因此您可以在短时间内拾取它。同样的。您已经从您引用的示例、我的答案以及参考RobG、hppycoder和我的链接中了解了如何使用日期对象ed,所以我从那里开始。谢谢。你建议的代码返回接下来的3个月,也许我没有解释,但它应该是接下来的3个月的星期四,从当前日期的月份开始。因此,它将返回4月、5月和6月的所有星期四(不包括从今天开始的任何前一个星期四)如果今天运行。我通过在getNextMonths()中将I=1更改为I=0,成功地将本月包括在内,但是我不确定如何仅从今天的日期输出星期四,而不是之前?我已更新了代码,以便您现在可以包括当前月份(工作方式与您已经了解的方式大致相同)此外,我还举了一个关于如何筛选日期的例子——目前,它将为您提供未来三个月内每个即将到来的星期四,包括当前的星期四。
function getDayOfWeek(num_week_day, dates) {

    let days = [];

    for (let i = 0; i < dates.length; i++) {

        // Evaluate current month
        
        let current = {

            year: dates[i].getFullYear(),
            month: dates[i].getMonth()
        };

        current.days = new Date(current.year, current.month + 1, 0).getDate();
        
        // Loop & evaluate days 
        
        for (let d = 1; d <= current.days; d++) {

            let date = new Date(current.year, current.month, d);

            if (date.getDay() == num_week_day) {

                days.push(date);
            }
        }
    }

    return days;
}

// Get all Thursdays (4th day of the week) within the next 3 months.
console.log(getDayOfWeek(4, getNextMonths(3))); 

// Get Thursdays within the next 3 months including the current one
console.log(getDayOfWeek(4, getNextMonths(3, true))); 

// Get Thursdays within the next 3 months including the current one...
let thursdays = getDayOfWeek(4, getNextMonths(3, true));

//...but keep only those Thursdays that are in the future  
let today    = new Date();
let filtered = thursdays.filter(function (date) {

    return date.getTime() >= today.getTime();
});

console.log(thursdays, filtered);