1. Развлекательный портал
  2. Публикации
  3. Программирование
  4. PHP
  5. Возраст по дате рождения в PHP
5298
10.00 /5 Stars by
10.00
0
17:51 - 05.10.2011

Возраст по дате рождения в PHP

Многие php-шники сталкивались с вопросом как вычислить сколько лет человеку по дате рождения. Наступил момент когда пришлось написать код самому и запостить, так как общарив инет и видя кучу предложенных вариантов которые не работают хочеться проявить инициативу и если где то вылезит ошибка не судите строго :)  
предлогаю вам следующий PHP код на рассмотрение:





/*############################
# danro82[at]mail.ru
# icq:137-213-137
# skype:halabudenco
# yahoo:halabudenco
# donate:
# webmoney:R470659605468
##############################*/


 /* принимает формат даты
  $date_birth = '1979-10-12';
  $date_now = date('Y-m-d');
  $age = new age();  
  echo $age->getAgeWithW(date('1983-17-03'));
 */
 
$age = new age();
class age
{
 
 function age(){} // конструктор не обязателен 
 function getAgeWithW($date_birth){
 //$date_birth - дата дня рождения 
 //date('Y-m-d') - сегодняшняя дата 
 $year=$this->get_age($date_birth, date('Y-m-d')); // вызываем функцию get_age
 
 $year= $year['years']."";// переводим в строку
 /* определяем года или год или лет */
 if(strlen($year)==3){
 if($year[2]==1){$age=" год";}
 if($year[2]>1 && $year[2]<5){$age=" года";}
 if($year[2]>=5 || $year[2]==0){$age=" лет";}
 }elseif(strlen($year)==2){
 if($year[1]==1 && strlen($year)<2){$age=" год";}
 if($year[1]>1 && $year[1]<5){$age=" года";}
 if($year[1]>=5 || $year[1]==0){$age=" лет";}
 if($year>5 && $year<21){$age=" лет";}      
 }else{
 if($year[0]==1){$age=" год";}
 if($year[0]>1 && $year[0]<5){$age=" года";}
 if($year[0]>=5 || $year[0]==0){$age=" лет";}
 } 
 return $year.$age;
 }
  
  
  function get_age($start_date, $end_date) {
   // парсим переменные через list 
   list($start_year,$start_month,$start_date) = split('-', $start_date);
   list($current_year,$current_month,$current_date) = split('-', $end_date);
   $result = '';
 
   /** дни для каждого месяца **/
 
   for($x=1 ; $x<=12 ; $x++){
    $dim[$x] = date('t',mktime(0,0,0,$x,1,date('Y')));
   }
 
   /** вычесляем разницу между датами годом, месяцем, днём **/
    $m = $current_month - $start_month;
   $d = $current_date - $start_date;
   $y = $current_year - $start_year;
 
     /** если сегодняшняя дата дня меньше даты дня рождения **/
 
   if($d < 0) {
     $today_day = $current_date + $dim[$current_month];
    $today_month = $current_month - 1;
    $d = $today_day - $start_date;
    $m = $today_month - $start_month;
    if(($today_month - $start_month) < 0) {
     $today_month += 12;
     $today_year = $current_year - 1;
     $m = $today_month - $start_month;
     $y = $today_year - $start_year;
    }
 
   }
 
     /** если сегодняшняя дата месяца меньше даты месяца рождения **/
  if($m < 0) {
     $today_month = $current_month + 12;
    $today_year = $current_year - 1;
    $m = $today_month - $start_month;
    $y = $today_year - $start_year;
   }
   
   /* записываем данные в массив */
   $r['years']=$y; // год рождения
    $r['month']=$m; // месяц рождения
   $r['days']=$d;  // день рождения  

  return $r;
  }

}
 


Если данные храняться в базе mysql большую чать кода можно обойти, но это в следующей статье.


Возраст по дате рождения в PHP

Для возможности комментировать пройдите .
Архив:

Рубрики публикаций

Авто 1259 Архитектура 2449 Велосипеды 67 Вертолёты 19 Дети 166 Дом 680 Еда 603 Жизнь 7388 Звёзды 2061 Игры 179 Искусство 3938 Карьера 65 Кино 824 Корабли 111 Космос 476 Красота 446 Любовь 91 Мода 2041 Мото 173 Музыка 155 Оружие 170 Природа 2121 Программирование 7 Самалёты 100 Спорт 287 Сэкс 44 Тайны 110 Технологии 892 Туризм 1012
18+ Развлекательный портал dosug.md - лучший сайт с ежедневными обновлениями.Всё самое свежее: места отдыха и развлечения на карте, мировые и региональные новости, публикации, афиши, фильмы, объявления(работа, авторынок, недвижимость ...), знакомства, форум, всё для свадьбы, картинки, приколы, юмор есть у нас на сайте ежедневно! Постоянное обновление мест отдыха и развлечений, актуальные новости,объявления, новые вакансии. Удобынй поиск на карте мест равзлечений. Вы любите путешествовать? самые свежие туры. У нас есть приколы на видео, которые можно смотреть онлайн. Мы делаем подборки, где популярные звезды голливуда на фото отдыхают и развлекаются, скандалы звезд, знаменитости в бикини.
Disclaimer: Все права на публикуемые аудио, видео, графические и текстовые материалы принадлежат их владельцам.
© 2011–2022
Top
Подождите идёт перенаправление
Подождите идёт перенаправление
Сообщение
Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie, которые обеспечивают правильную работу сайта. Благодаря им мы улучшаем сайт, обслуживание и товары.
Подтверждаю Подробнее