我想把四个即将到来的日期存储到数据库中


I Want To Store Four Upcoming Dates Into Database?

我想在数据库中存储四个即将到来的日期,从当前日期起增加7天。例如,今天的日期是2016/05/02,接下来的四个日期是CCD_ 2。

我正试图用这种方法来做到这一点:

$today = date('Y/m/d', strtotime('+0 days'));
$_SESSION['nextweek'] = $today;
for($i = 1; $i < 5; $i++){
    $j = $i + 7;
    $_SESSION['nextweek'] = date($_SESSION['nextweek'], strtotime('$j days'));   
}

我不确定您想要实现什么,但要从当前日期开始4天的增量,您可以(并且应该)使用DateTime类:

<?php
session_start();
date_default_timezone_set( 'Europe/Lisbon' );
$datetime = new DateTime();
for( $i=1 ; $i<5; $i++ ){
    $datetime->modify( '+7 day' );
    $_SESSION['nextweek'] = $datetime->format( 'Y-m-d' );
    echo $_SESSION['nextweek'];
}
/*
2016-05-09
2016-05-16
2016-05-23
2016-05-30
*/

Ideone演示

for($i= 1;$i<5;$i++){
    $j = $i*7;
    $_SESSION['nextweek']= date('Y/m/d',strtotime("+".$j." days"));   
}

您的循环必须类似于

$today = date('Y/m/d',strtotime('+0 days'));
$_SESSION['nextweek'] = $today;
$j=7;
for($i= 0;$i<4;$i++)
{
    $nextdate = date('Y/m/d',strtotime("+$j day", strtotime('+0 days'))); 
    $j+=7;
    print_r($nextdate); 
    echo "<br />";
}

此输出

2016/05/09
2016/05/16
2016/05/23
2016/05/30
$today = date('Y/m/d',strtotime('+0 days'));
$_SESSION['nextweek'] = $today;
for($i= 7;$i<=28;$i++){
$_SESSION['nextweek']= date($_SESSION['nextweek'],strtotime('$i days'));  
$i =$i+6; // now it increments with 7 days.
}

这将为您提供正确的日期