我想创建一个工作日日期列表,其中包含工作日的名称。 如果今天是星期一 - 2017-01-02(Y-m-d),那么我希望列表是这样的:
如果今天是星期一,我的下面代码会给出这样的结果。 这是我到目前为止所做的。
function NextDayDate($day) {
return new DateTime('next ' . $day);
}
$dt = new DateTime();
$today=date("l");
if ($today=="Monday") {
echo $dt->format('d'); // Todays date
echo '</br>';
}
elseif ($today!="Monday"){
echo '</br>';
$nextMonday = NextDayDate('Monday');
echo $nextMonday->format('d'); // Next date
echo '</br>';
}
if ($today=="Tuesday") {
echo $dt->format('d'); // Todays date
echo '</br>';
}
elseif ($today!="Tuesday"){
echo '</br>';
$nextMonday = NextDayDate('Tuesday');
echo $nextMonday->format('d'); // Next date
echo '</br>';
}
如果今天是星期二,那么星期一我会有星期一09,因为这是星期一的下一个日期。
我想保留最后几天的日期,以便列表不会更改。
也许有办法让当前的周日名称与日期相符?
答案 0 :(得分:0)
这更容易:
$a = new DateTime();
$oneDay = new DateInterval("P1D");
// Here you add one day to your date until it will Monday
while ($a->format('D') != 'Mon') {
$a->add($oneDay);
}
// Here you print 7 days from your target Monday
for ($i = 0; $i < 7; $i++) {
echo $a->format("D-d");
$a->add($oneDay);
}