我正在运行此功能
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)
}
循环正常,显示我的所有用户。
但问题是,它会为第一个用户正确计算年龄,然后为所有其他用户显示相同的年龄。我应该指出所有其他用户的数据都是正确的,只有年龄是错误的。
任何人都知道如何解决这个问题?
谢谢!
答案 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正在缓存结果?
似乎功能年龄是正确的