Главная страница О Web-студии Разработка сайтов Интернет-реклама CD-презентации 3D-графика Программное обеспечение
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создание сайтов. Авторы: Кузнецов М.В., Симдянов И.В. Головоломки на PHP для хакера (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры . Авторы: Кузнецов М.В., Симдянов И.В. PHP. Народные советы. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование: ступени карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Security & Cracking Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
Консультации от известных специалистов и авторов многих книг

Информационный портал
«SoftTime-INFO»


Примеры скриптов на PHP

Вернуться в примеры скриптов

Количество лет, месяце и дней, прошедших со дня рождения


Скрипт предназначен для точного вычисления количества лет, месяцев и дней, прошедших с определенной даты, например, дня рождения. Числа, которые получаются в результате вычисления склоняются в соответствии с правилами русского языка. Имеется ограничение: так как используются даты в формате UNIXSTAMP, скрипт работает только с датами после 1 января 1970 года.

Реализация

<?php 
  // 24 января 1985 года
  $birthday mktime(0001241985);
  echo birthday($birthday);

  // Количество лет, месяцев и дней, прошедших со дня рождения
  function birthday($sec_birthday)
  {
    // Сегодняшняя дата
    $sec_now time();
    // Подсчитываем количество месяцев, лет
    for($time $sec_birthday$month 0; 
        $time $sec_now; 
        $time $time date('t'$time) * 86400$month++){
        $rtime $time;
        }
    $month $month 1;
    // Количество лет
    $year intval($month 12);
    // Количество месяцев
    $month $month 12;
    // Количество дней
    $day intval(($sec_now $rtime) / 86400);
    $result declination($year"год""года""лет")." ";
    $result .= declination($month"месяц""месяца""месяцев")." ";
    $result .= declination($day"день""дня""дней")." ";
    return $result;
  }

  // Склонение числа $num
  function declination($num$one$ed$mn$notnumber false)
  {  
    // $one="статья";  
    // $ed="статьи";  
    // $mn="статей";  
    if($num === "") print "";
    if(($num == "0") or (($num >= "5") and ($num <= "20")) or preg_match("|[056789]$|",$num))
      if(!$notnumber)
        return "$num $mn";
      else
        return $mn;
    if(preg_match("|[1]$|",$num))
      if(!$notnumber)
        return "$num $one";
      else
        return $one;
    if(preg_match("|[234]$|",$num))
      if(!$notnumber)
        return "$num $ed";
      else
        return $ed;
  }
?>

Если вам интересно узнать точное количество лет, месяцев и дней, прошедших со дня вашего рождения, воспользуйтесь формой, представленной ниже.

 
  Rambler's Top100 Яндекс.Метрика Яндекс цитирования