跳过 php 日期的周末



我有这段代码:

 for ($i = 2; $i > -3; $i--)
    { 
        $class="";
        if(date('D d-m')==date('D d-m', strtotime($i . ' days ago')))
        { 
          $class=' class="distinct"'; 
        }
        echo '<li'.$class.'>'.date('D d-m', strtotime($i . ' days ago')) . '</li>'.'<br />';
    }

它输出这个:

Wed 17-05
Thu 18-05
Fri 19-05
Sat 20-05
Sun 21-05

想知道我怎么能跳过周末,所以它只显示周一至周五的 5 天。任何想法如何排除这一点?

您可以从为

星期一创建一个时间戳开始,并添加足够的秒数以使一天前进五次。

这样:

$monday = strtotime('last monday');
for ($i = 0; $i < 5; $i++)
{
    echo date('D d-m', $monday) . '<br />'; 
    $monday = $monday + (60 * 60 * 24); // Add a day
}

我的东西getDate((正是你所需要的。您可以使用'wday'来检查一周中的哪一天(从 0 - 星期日到 6 - 星期六(。例:

for ($i = 2; $i > -3; $i--)
{ 
    $date = getDate(strtotime($i . ' days ago'));
    if($date['wday'] == 6 || $date['wday'] == 0) {
        echo "Weekend!n";
    }
    else {
        echo "Regular day...n";
    }
}

它输出:

Regular day...                                                                                                                                                                                                                                
Regular day...                                                                                                                                                                                                                                
Regular day...                                                                                                                                                                                                                                
Weekend!                                                                                                                                                                                                                                      
Weekend! 

更新:

for($i = -2; $i <= 2; $i++)
{
    echo date ( 'D d-m' , strtotime ( "$i weekdays" ) ) . '<br>';
}

将输出:

Wed 17-05
Thu 18-05
Fri 19-05
Mon 22-05
Tue 23-05

====

==================================

旧答案:

$thisMonday = date("d-M-Y", strtotime('monday this week'));
for ($i = 0; $i <= 4; $i++)
{ 
    $class="";
    $date = date('d-M-Y', strtotime("+$i days", strtotime($thisMonday)));
    if(date('D d-m') == date('D d-m', strtotime($i . ' days ago')))
    { 
      $class=' class="distinct"'; 
    }
    echo '<li'.$class.'>'. date('D d-m', strtotime($date)) . '</li>'.'<br />';
}   

最新更新