PHP取决于一周中的当前日期,获得一周的下一天

时间:2016-06-20 16:52:54

标签: php date dayofweek

我必须用访客号码填写我的图表,但是,当显示当前周数据时,我将下一天的值设为0。

EG:今天是星期一,所以我将2016-06-20作为列值,但下一列值名称为0,因为我没有接下来几天的数据。

图表索引必须如下:

|| 20 Jun 2016 || 21 Jun 2016 || 22 Jun 2016 || 23 Jun 2016 || etc.

现在我明白了:

|| 20 Jun 2016 || 1 Jan 1970 || 1 Jan 1970 || 1 Jan 1970 || etc.

所以我尝试使用此功能填充缺少的日子:

function get_day($count) {
    if ($count == NULL) {
        $dweek = date("w");
        for ($i = 1; $i <= 6; $i++) {
            echo $i;
            switch ($i) {
                case 1:
                    $day = $dweek+1;
                    break;
                case 2:
                    $day = $dweek+2;
                    break;
                case 3:
                    $day = $dweek+3;
                    break;
                case 4:
                    $day = $dweek+4;
                    break;
                case 5:
                    $day = $dweek+5;
                    break;
                case 6:
                    $day = $dweek+6;
                    break;
            }
        }
        $current = date("d M Y",strtotime("+$day day"));
    } else {
        $current = date("d M Y",strtotime($count));
    }
    return $current;
}

但现在我用了这个:

|| 20 Jun 2016 || 27 Jun 2016 || 27 Jun 2016 || 27 Jun 2016 || etc.

所以我错过了一些东西,但是2小时后我看不出怎么办。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

使用datetime datetime.modify

$res = "|| ";

for ($d = 1; $d < 8; $d++) {
    $dt = new DateTime();
    $m = $dt->modify("+$d days");
    $f = $m->format("d M Y");
    $res .= $f . " || ";
}

echo $res;

答案 1 :(得分:1)

$date = '2016-06-20'; //replace this by your date
$statement = '';
for($i = 0; $i < 7; $i++){
    $statement.= ' || ' . date('d M y', strtotime("$date +$i day"));
}
echo $statement;

现在,您可以使用日期而不是$ date。

DEMO