我有这段代码:
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天。有任何想法如何排除这个?
答案 0 :(得分:1)
我的事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!
答案 1 :(得分:1)
您可以先为星期一创建一个时间戳,然后添加足够的秒数,以便将一天推进五天。
像这样:
$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
}
答案 2 :(得分:0)
更新
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 />';
}