За последние 24 часа нас посетили 15266 программистов и 1671 робот. Сейчас ищут 835 программистов ...

Как лучше рассчитать возраст?

Тема в разделе "PHP для новичков", создана пользователем allowance, 19 сен 2010.

  1. allowance

    allowance Активный пользователь

    С нами с:
    19 янв 2010
    Сообщения:
    196
    Симпатии:
    0
    Как можно реализовать это проще?

    PHP:
    1. list($dd2,$mm2,$yy2)=explode("-",$myrow["birthday"]);
    2. list($dd,$mm,$yy)=explode("-",$today = date("d-m-Y"));
    3. $age = $yy - $yy2;
    4. if($mm < $mm2)
    5. {
    6.      $age=$age-1;
    7. }
    8. if($mm = $mm2)
    9. {
    10.     if($dd < $dd2)
    11.     {
    12.          $age=$age-1;
    13.      }
    14. }
     
  2. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    неверно
     
  3. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    ы?
    PHP:
    1. <?php
    2. list($dd2,$mm2,$yy2)=explode("-",'9-11-1988');
    3. list($dd,$mm,$yy)   =explode("-",date("d-m-Y"));
    4.  
    5. $seconds = mktime(0,0,0,$mm,$dd,$yy) - mktime(0,0,0,$mm2,$dd2,$yy2);
    6. echo floor($seconds / 60 / 60 /24 / 365);
    7.  
    8.  
    9. ?>
     
  4. allowance

    allowance Активный пользователь

    С нами с:
    19 янв 2010
    Сообщения:
    196
    Симпатии:
    0
    Ensiferum
    Высокосный год учтён? :)
     
  5. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    высокосный год учитывается, если нужно год с десятичной точностью показать
     
  6. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Ensiferum
    А если дата рождения раньше 1970? ;)
     
  7. engager

    engager Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    Ensiferum
    PHP:
    1. $age = date('Y',mktime(0,0,0,$mm,$dd,$yy)) - date('Y',mktime(0,0,0,$mm2,$dd2,$yy2));
    не?
    и да, 1970...
     
  8. Ensiferum

    Ensiferum Активный пользователь

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    Блин, точно, 1970 же (( Тогда unix timestamp не прокатит
     
  9. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Да нет, канетели там чуточку больше, но всё, что раньше 1970 года - возвращается отрицательным числом в тех же секундах. Главное - это учесь.