почему я всегда получаю текущий месяц с его датой после выполнения этого цикла ff?

У меня есть следующий цикл, который будет получать даты с заданной продолжительностью и датой начала.

$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-04 вплоть до 15-04-02 , Как мне пересмотреть мой код? Спасибо за помощь

0

Решение

Как я отметил это дублировать .

Так что вы можете попробовать:

$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.

Если вы можете принять это решение, чтобы избежать usin 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> ";
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]