用于将日期,星期或月份添加到日期的php函数

时间:2012-10-11 06:23:15

标签: php date increment schedule

我正在尝试做一个像贷款一样的时间表。

所以我做了以下代码:

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。

3 个答案:

答案 0 :(得分:1)

删除以下行'

中的单引号(<td>$reste</td></tr>'";

答案 1 :(得分:1)

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

另外,我建议使用switch语句而不是if个。{/ p>

答案 2 :(得分:1)

您的PHP代码写得不好而且无效。由于您没有发布完整的代码,我不知道如何提供帮助。我给了一些提示&amp;可以帮助您的想法:

  1. periode()函数应返回值,echo不起作用
  2. 按我提到的那样修改您的代码
  3. 了解strtotime()函数和php
  4. 请参阅下面的示例代码:

    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)));