繁体   English   中英

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

[英]PHP function running inside loop not working (with code)

我正在运行此功能

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

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

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

有人知道怎么修这个东西吗?

谢谢!

你的$dob看起来很糟糕。 尝试$dob = $year . '-' . $month . '-' $day; $dob = $year . '-' . $month . '-' $day;

你错过了空格/分隔符。

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

应该

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

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

- - 表示dd-mm-yyyy

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM