内部循环运行的PHP函数不起作用(带代码)

时间:2011-02-26 21:14:56

标签: php function codeigniter loops

我正在运行此功能

function Age($month, $day, $year) {
    date_default_timezone_set('America/New_York');
    $dob = $month .''. $day .''. $year;
    $startDate = strtotime($dob);
    $endDate = time();
    $dif = $endDate - $startDate;

    return $years = (date('Y', $dif) - 1970) .' y, '. ($months = date('n', $dif) - 1).' m';
}

foreach循环内(某些CodeIgniter标记):

foreach ($users as $row) {
    echo $this->includes->Age($row->birth_month, $row->birth_day, $row->birth_year)
  }

循环正常,显示我的所有用户。

但问题是,它会为第一个用户正确计算年龄,然后为所有其他用户显示相同的年龄。我应该指出所有其他用户的数据都是正确的,只有年龄是错误的。

任何人都知道如何解决这个问题?

谢谢!

3 个答案:

答案 0 :(得分:3)

您的$dob看起来格格不入。试试$dob = $year . '-' . $month . '-' $day;

答案 1 :(得分:1)

你缺少空格/分隔符。

$dob = $month .''. $day .''. $year;

应该是

$dob = $month .'/'. $day .'/'. $year;

编辑: 歧义。如果使用mm-dd-yyyy格式,应该是/

。 - - 表示dd-mm-yyyy

答案 2 :(得分:0)

也许CI正在缓存结果?
似乎功能年龄是正确的