使用 MYSQL & PHP 将星期几转换为当月的日期

Converting day of week to dates for the current month with MYSQL & PHP

搜索了一段时间,没有找到任何答案。我希望这是一个非常简单的问题。

在我的数据库中,我有一个字符串列 dayOfWeek。

我用它来跟踪每周活动安排在星期几。通常我使用 PHP 将 dayOfWeek 与当前日期匹配并显示正确的事件。

我想做的是显示未来的日历,列出每周重复事件的未来日期。

例如,如果活动在星期二举行,而 2017 年 2 月的星期二分别是 7 日、14 日、21 日和 28 日。我想用 PHP 来显示。

我知道strtotime()是用来做反操作的,从日期中找一天,但是反操作可以很简单吗?

抱歉,如果我的问题措辞不当或缺少信息。

你可以这样做:

// The day of the week.
$dayOfEvent = row['day'];
// Say, you wanted the next 5 weeks. 
$numberOfWeeks = 5;
$tempDate = date(U);
$counter = 0;

do{
    $tempDate = $tempDate + 86,164;
    if(date('D', $tempDay) == 'Tue'){
        echo date('l jS \of F Y', $tempDay);
        $counter++;
    }
}while($counter < $numberOfWeeks);

2017 年 2 月星期二的用例

$n=date('t',strtotime("2017-02-01")); // find no of days in this month
$dates=array();
for ($i=1;$i<=$n;$i++){
     $day=date("D",strtotime("2017-02-".$i)); //find weekdays

    if($day=="Tue"){
        $dates[]="2017-02-".$i;
    }
}
print_r($dates);

http://phpfiddle.org/main/code/s8wq-xx44

首先尝试查找本周的日期。之后继续增加7天的倍数。

<?php 
    // $timestamp = now();

    for ($i=0; $i < 7; $i++) { 

        $days = $i." days";
        $t = date('Y-m-d', strtotime($days));
        $dayOfTheDay = date("D",strtotime($t));
        if ( $dayOfTheDay == day from table )
        {
            $current_date = $t;
            break;
        } 
    }

    for ($i=0; $i < 200; $i++) { 
        in this loop add 7 days to current_date
    }
 ?>