0

我正在尝试像贷款一样制定时间表。

所以我做了以下代码:

function periode($var, $i2)
    {
        if($var=='52')
        {
            echo '"+ '.$i2.' week"';
        }
        if($var=='26')
        {
            echo '"+ ('.$i2.' +1) week"';
        }
        if($var=='12')
        {
            echo '"+ '.$i2.' month"';
        }
        if($var=='6')
        {
            echo '"+ ('.$i2.' +1) month"';
        }
        if($var=='2')
        {
            echo '"+ ('.$i2.' +6) month"';
        }
        if($var=='1')
        {
            echo '"+ ('.$i2.' +12) month"';
        }


    }
 $chaine ="
 <table style='width:100%'>
 <tr>
 <th>Capital Principal</th>
 <th>Date d'&eacute;ch&eacute;ance</th>
 <th>Montant de l'&eacute;ch&eacute;ance</th>
 <th>Capital restant d&ucirc;</th>
 </tr>";
 $i2=0;
 $montant_echeance = round($montant_du / $nombre_echeances, 2);
 $reste=$montant_du ;
 while($i2 <= $nombre_echeances)
 {
     echo  $date =date("d-m-Y", strtotime($debut) .periode($pay_periodicity, $i2));             
        if ($i2 == $nombre_echeances)
        {
                $montnt_echeance = $reste;
                $reste = 0;
        }
     $chaine .= "<tr>
     <td>$montant_du</td>
      <td>".$date."</td>
     <td>$montant_echeance</td>
     <td>$reste</td></tr>'";
           $reste = $reste-$montant_echeance;
     $i2++;
        }
$chaine .="</table>";
print "$chaine";


    }

但是,它并没有返回给我美好的约会,而是返回给我:

"+ 0 month"11-10-2012"+ 1 month"11-10-2012"+ 2 month"11-10-2012"+ 3 month"11-10-2012"+ 4 month"11-10-2012"+ 5 month"11-10-2012"+ 6 month"11-10-2012"+ 7 month"11-10-2012"+ 8 month"11-10-2012"+ 9 month"11-10-2012"+ 10 month"11-10-2012"+ 11 month"11-10-2012"+ 12 month"11-10-2012"+ 13 month"11-10-2012"+ 14 month"11-10-2012"+ 15 month"11-10-2012"+ 16 month"11-10-2012"+ 17 month"11-10-2012"+ 18 month"11-10-2012"+ 19 month"11-10-2012"+ 20 month"11-10-2012"+ 21 month"11-10-2012"+ 22 month"11-10-2012"+ 23 month"11-10-2012"+ 24 month"11-10-2012"+ 25 month"11-10-2012"+ 26 month"11-10-2012"+ 27 month"11-10-2012"+ 28 month"11-10-2012"+ 29 month"11-10-2012"+ 30 month"11-10-2012"+ 31 month"11-10-2012"+ 32 month"11-10-2012"+ 33 month"11-10-2012"+ 34 month"11-10-2012"+ 35 month"11-10-2012"+ 36 month"11-10-2012"+ 37 month"11-10-2012"+ 38 month"11-10-2012"+ 39 month"11-10-2012"+ 40 month"11-10-2012"+ 41 month"11-10-2012"+ 42 month"11-10-2012"+ 43 month"11-10-2012"+ 44 month"11-10-2012"+ 45 month"11-10-2012"+ 46 month"11-10-2012"+ 47 month"11-10-2012"+ 48 month"11-10-2012"+ 49 month"11-10-2012"+ 50 month"11-10-2012"+ 51 month"11-10-2012"+ 52 month"11-10-2012"+ 53 month"11-10-2012"+ 54 month"11-10-2012"+ 55 month"11-10-2012"+ 56 month"11-10-2012"+ 57 month"11-10-2012"+ 58 month"11-10-2012"+ 59 month"11-10-2012"+ 60 month"11-10-2012 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Capital Principal   Date d'échéance     Montant de l'échéance   Capital restant dû
6210.04     11-10-2012  103.5   6210.04
6210.04     11-10-2012  103.5   6106.54
6210.04     11-10-2012  103.5   6003.04
6210.04     11-10-2012  103.5   5899.54
6210.04     11-10-2012  103.5   5796.04
6210.04     11-10-2012  103.5   5692.54
6210.04     11-10-2012  103.5   5589.04

真的很奇怪,

我有点迷茫,我真的不知道该功能有什么问题。

任何建议将不胜感激。

接受我最大的尊重。

亲切的问候。

SP。

4

3 回答 3

1

在函数periode中,替换所有echos替换为return

另外,我建议使用switch语句而不是大量ifs。

于 2012-10-11T07:09:54.030 回答
1

删除'以下行中的单引号()<td>$reste</td></tr>'";

于 2012-10-11T07:00:00.317 回答
1

你的 php 代码写得不好,它不会工作。由于您没有发布完整的代码,我不知道如何提供帮助。我提供了一些可以帮助您的提示和想法:

  1. periode() 函数应该返回值,echo 不起作用
  2. 正如我提到的那样修改你的代码
  3. 了解strtotime()函数和php

请参阅我下面的示例代码:

function periode($var, $i2)
{
    if($var=='1') {
        return '+'.$i2.' day';
    }
    else if($var=='2') {
        return '+'.$i2.' week';
    }
    else if($var=='3') {
        return '+'.$i2.' month';
    }
}

$current_date = date('Y-m-d');
echo date('Y-m-d', strtotime(periode(1, 1), strtotime($current_date)));
echo '<br />'.date('Y-m-d', strtotime(periode(2, 2), strtotime($current_date)));
echo '<br />'.date('Y-m-d', strtotime(periode(3, 1), strtotime($current_date)));
于 2012-10-11T07:10:49.670 回答