Функция PHP, работающая внутри цикла, не работает (с кодом) - PullRequest
1 голос
/ 27 февраля 2011

Я использую эту функцию

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 ]

3 голосов
/ 27 февраля 2011

Ваш $dob выглядит уродливо.Попробуйте $dob = $year . '-' . $month . '-' $day;

1 голос
/ 27 февраля 2011

Вам не хватает пробелов / разделителей.

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

должно быть

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

редактирование: Неоднозначность. Если используется формат mm-dd-yyyy, должно быть /

. и - указать дд-мм-гггг

0 голосов
/ 27 февраля 2011

Может быть, КИ кеширует результат?Кажется, функция Возраст верна

...