显示中间的当前日

时间:2017-05-18 12:55:49

标签: php date

我有一个显示5天的while循环。第一天是当天,其他是下一天4.这是我的代码:

$datetime = new \DateTime();

$listItem = array('<li class="active">', '</li>');

$i = 0;
while (true) {
    if ($i === 5) break;

    if ($datetime->format('N') === '7' && $i === 0) {
        $datetime->add(new \DateInterval('P1D'));
        continue;        
    }

    echo $listItem[0] . $datetime->format('D d-m') . $listItem[1];
    $listItem = array('<li>', '</li>');    

    $datetime->add(new \DateInterval('P1D'));

    $i++;
}

结果如下: enter image description here

我的问题是,我希望当天能够处于中间位置。星期六应该是当天。你知道怎么做吗?

提前致谢。

3 个答案:

答案 0 :(得分:1)

$datetime = new \DateTime();
$datetime->modify('-2 Day');

http://php.net/manual/en/datetime.modify.php

答案 1 :(得分:1)

你可以简单地从你的开始日减去2天。

$datetime = new \DateTime();
$datetime->sub(new \DateInterval('P2D'));

答案 2 :(得分:1)

请尝试以下代码:

$datetime = new \DateTime();

$listItem = array('<li">', '</li>');
$listItem_active = array('<li class="active">', '</li>');

$i = 0;
while (true) {

    if ($i === 5) break;

    if ($datetime->format('N') === '7' && $i === 0) {
        $datetime->add(new \DateInterval('P1D'));
        continue;        
    }

    if($i===0){
        $today = $datetime->format('D d-m');
    }
    if($i===3){
        echo $listItem_active[0] . $today . $listItem_active[1];
    }
    if($i!=0){
        echo $listItem[0] . $datetime->format('D d-m') . $listItem[1];
    }

    $listItem = array('<li>', '</li>');    

    $datetime->add(new \DateInterval('P1D'));

    $i++;
}