为什么我';在执行完这个ff循环之后,我总是得到当前月份及其日期


why I'm always getting the present month with its date after executing this ff loop?

我有一个下面的循环,它将获得给定持续时间和开始日期的日期。

$durationMonth =$_POST['pay_months']; //how many months to pay
$count = ($durationMonth * 30);
$day = 1;
for ($i=1; $i<=$count; $i++)
{ 
    $day+=1; 
    $start_date=date("y-m-d");
    $start_date=strtotime(date("y-m-d",strtotime($start_date))." + $day day");
    $start_date=date("y-m-d",$rel_date);
  echo "<tr>
 <td id ='row'> ".$i."</td> 
 <td id ='row'> ".$start_date." </td>
 </tr> ";
}

这个循环不起作用。如果我设置ff:

 $start_date =  '2015-01-01'
 $duration = 1

即使我尝试了多少次,这也总是给出从15-03-0415-04-02的日期。我应该如何修改我的代码?感谢的帮助

正如我所标记的,它是重复的。

所以你可以试试:

$durationMonth =$_POST['pay_months']; //how many months to pay
$start_date=strtotime (date("y-m-d"));
for ($i=1; $i<=$durationMonth; $i++)
{ 
  $start_date = date("Y-m-d", strtotime("+1 month", $start_date));
  echo "<tr>
 <td id ='row'> ".$i."</td> 
 <td id ='row'> ".$start_date." </td>
 </tr> ";
}

如果约会日期超过28日,你唯一应该担心的就是。

如果你可以接受这个解决方案,以避免使用29,30,31作为日期:

$durationMonth =$_POST['pay_months']; //how many months to pay
$start_date=strtotime (date("y-m-d"));
if (date('j',$start_date)>28)
   $start_date=strtotime (date("y-m-").'28');
for ($i=1; $i<=$durationMonth; $i++)
{ 
  $start_date = strtotime("+1 month", $start_date);
  echo "<tr>
 <td id ='row'> ".$i."</td> 
 <td id ='row'> ". date("Y-m-d", $start_date)." </td>
 </tr> ";
}