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

Php 我想将四个即将到来的日期存储到数据库中?,php,datetime,Php,Datetime,我想在数据库中存储四个即将到来的日期,从当前日期开始递增7天。例如,今天的日期是2016/05/02,接下来的四个日期是 2016/05/092016/05/162016/05/232016/05/30 我尝试用这种方法来实现这一点: $today = date('Y/m/d', strtotime('+0 days')); $_SESSION['nextweek'] = $today; for($i = 1; $i < 5; $i++){ $j = $i + 7; $_S

我想在数据库中存储四个即将到来的日期,从当前日期开始递增7天。例如,今天的日期是2016/05/02,接下来的四个日期是
2016/05/092016/05/162016/05/232016/05/30

我尝试用这种方法来实现这一点:

$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'));   
}
$today=日期('Y/m/d',标准时间('+0天');
$_SESSION['nextweek']=$今天;
对于($i=1;$i<5;$i++){
$j=$i+7;
$_SESSION['nextweek']=日期($_SESSION['nextweek'],strotime('j天');
}

您的循环必须是这样的

$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 />";
}

我不确定你要达到什么目标,但要从当前日期开始增加4次7天,你可以(而且应该)使用以下课程:

$today=日期('Y/m/d',标准时间('+0天');
$_SESSION['nextweek']=$今天;

对于($i=7;$i
for($i=1;$iBravo,现在将其存储在数据库中。为什么要存储在会话中?那么您有什么问题?只返回当前日期,即2016/05/02。您是否意识到循环每次运行时都会覆盖该日期?我是php新手。根据我的意见,它应该这样做,因为当循环完成时,值应该更改。我不认为因为当第一次循环是正确的,因为我从7开始,但当第二次循环值是8时,它会增加到日期8,下一次是9,依此类推,直到条件为falseYes,因为你在更新$i天,下周的会话已经更新为7天,你可能会得到第7天,然后是第15天think@Sameer那个不是预期的输出但它不是正确的日期,看看这个问题如果注释的内容是输出,那么它是不正确的我想是的,我甚至没有读过你的代码,但确定你只是在输出上犯了一个错误:-)我总是测试我的代码,有时它会混淆…)它工作了谢谢你兄弟:)上帝保佑你Pedro Lobito在php中使用\n
2016/05/09
2016/05/16
2016/05/23
2016/05/30
<?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
*/
$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.
}
for($i= 1;$i<5;$i++){
    $j = $i*7;
    $_SESSION['nextweek']= date('Y/m/d',strtotime("+".$j." days"));   
}