Приветствие в зависимости от времени суток

<!--
Приветствие в зависимости от времени суток

Приведённый ниже скрипт будет выводить на странице время и приветствие в зависимости от времени.

Временные промежутки можно изменять. В скрипте установлены следующие промежутки времени:

утро начинается в 4 часа
день после 10 часов
вечер в 16 часов
ночь наступает в 22 часа
-->

<?php

$morning = "Доброе утро!";
$day = "Добрый день!";
$evening = "Добрый вечер!";
$night = "Доброй ночи!";

$minyt = date("i");
$chasov = date("H");

if ($chasov >= 00) {$hello = $night;}
if ($chasov >= 04) {$hello = $morning;}
if ($chasov >= 10) {$hello = $day;}
if ($chasov >= 16) {$hello = $evening;}
if ($chasov >= 22) {$hello = $night;}

echo "Время: $chasov:$minyt, $hello";

?> 

Добавлено: 11 Апреля 2018 07:42:01 Добавил: Андрей Ковальчук

microtime.php

<!--
Вычисляем время выполения php-скрипта (загрузки страницы)

При программировании на php немаловажно уделить внимание скорости загрузки срипта. Слишком долго выполняющиеся скрипты могут сильно грузить сервер, при высокой посещаемости ресурса будут происходить сбои всего сайта из-за таких скриптов. Чтобы узнать сколько времени работает скрипт (грузится страница), воспользуйтесь таким примером php-кода:
-->

<?php
define('ST_T', microtime());//начало

echo '<p>Контент страницы, скрипты и т.п.</p>';

printf('Страница сгенерирована за %.5f сек.', microtime()-ST_T);//конец
?> 

Добавлено: 11 Апреля 2018 07:27:48 Добавил: Андрей Ковальчук

date.php

<!--
Время на сайте (сервере)

С помощью php легко узнать текущее время на сервере, например, во время загрузки на сервере было 16:36:22 19.05.2011, 
но в отличии от javascript это время не меняется онлайн, 
т.е. отображается то время, которое было на сервере в момент загрузки данной страницы.
-->

<?php
echo date('H:i:s d.m.Y'); // Время на сайте (сервере)
?> 

Добавлено: 10 Апреля 2018 22:28:08 Добавил: Андрей Ковальчук

Временная шкала (PHP, CSS и jQuery )

Сегодня мы будем создавать прелестную временную шкалу для событий, которая будет похожа на временную шкалу Google, созданную на десятилетие компании (смотреть здесь -> http://www.google.com/tenthbirthday/).


Временная шкала будет использовать PHP, MySQL, CSS и jQuery, которые помогут придать ей замечательный вид и сделать разворачивание дополнительной информации о событии по нажатию кнопки мыши. Добавление нового события сводится к простой вставке новой строки в таблицу базы данных.

Шаг 1 – XHTML

Создаем структуру XHTML в файле demo.php.

demo.php

<div id="timelineLimiter"> <!-- Скрывает выступающие div timelineScroll -->
    <div id="timelineScroll"> <!-- Содержит временную шкалу и расширяет ее для заполненияы -->
 
<!-- PHP код, который генерирует список событий -->  
     
    <div class="clear"></div>
    </div>
         
    <div id="scroll"> <!-- Год временной шкалы -->
        <div id="centered"> <!-- Размер устанавливается jQuery для запооленеия всех лет -->
            <div id="highlight"></div> <!-- Светлоголубая полоска позади надписей с годами -->
            <?php echo $scrollPoints ?> <!-- Данная переменная PHP сожержит года, которые имеют события -->
            <div class="clear"></div>
        </div>
    </div>
         
    <div id="slider"> <!-- Контейнер слайдера -->
        <div id="bar"> <!-- Полоска, которую можно перетаскивать мышкой -->
            <div id="barLeft"></div>  <!-- Левая стрелка на полоске -->
            <div id="barRight"></div>  <!-- Правая стрелка на полоске, обе стилизованы с помощью CSS -->
      </div>
    </div>
         
</div>

Пока в коде опущены строки кода PHP, которые генерируют события, чтобы можно было лучше рассмотреть разметку (PHP код будет вставлен на следующих этапах).

Основная идея заключается в том, что мы имеем два div – timelineLimiter и timelineScroll, который расположен внутри предыдущего div. Формирователь берет ширину экрана и затем увеличивает полученное значение, чтобы вместились все секции событий, которые вставлены внутри него. Таким образом только часть большого внутреннего div будет видимой, а остальная часть будет прокручиваться влево и вправо с помощью слайдера jQuery, который будет готов на шаге 4.

Теперь посмотрим на код PHP.

Шаг 2 – PHP

PHP код выбирает все события в базе данных и группирует их по годам в массиве $dates. Затем проходит циклом по ним и выводит все события как элементы <li> в неупорядоченном списке, который принадлежит каждому году событий.

demo.php
// Выбираем все события из базы данных, упорядочивая их по дате:
         
$dates = array();
$res = mysql_query("SELECT * FROM timeline ORDER BY date_event ASC");
         
while($row=mysql_fetch_assoc($res))
{
    // Cохраняем события в массиве, группируя их по годам:
    $dates[date('Y',strtotime($row['date_event']))][] = $row;
}
         
$colors = array('green','blue','chreme');
$scrollPoints = '';
         
$i=0;
foreach($dates as $year=>$array)
{
    // Цикл по годам:
    echo '
    <div class="event">
        <div class="eventHeading '.$colors[$i++%3].'">'.$year.'</div>
        <ul class="eventList">
        ';
         
    foreach($array as $event)
    {
        // Цикл по событиям в текущем году:
                 
        echo '<li class="'.$event['type'].'">
        <span class="icon" title="'.ucfirst($event['type']).'"></span>
        '.htmlspecialchars($event['title']).'
                 
        <div class="content">
            <div class="body">'.($event['type']=='image'?'<div style="text-align:center"><img src="'.$event['body'].'" alt="Image" /></div>':nl2br($event['body'])).'</div>
            <div class="title">'.htmlspecialchars($event['title']).'</div>
            <div class="date">'.date("F j, Y",strtotime($event['date_event'])).'</div>
        </div>
                 
        </li>';
    }
             
    echo '</ul></div>';
             
    // Генерируем список лет для полосы прокрутки временной шкалы:
    $scrollPoints.='<div class="scrollPoints">'.$year.'</div>';
}

Таким образом формируется разметка страницы. Теперь можно задать стили.

Шаг 3 – CSS
После вставки ссылки на файл CSS в заголовке документа, можно писать правила. Ниже приводятся только самые интересные строчки, остальной код можно посмотреть в файле styles.css.

styles.css
.event{
    /* Содержит список заголовоков и описаний событиый */
    float:left;
    padding:4px;
    text-align:left;
    width:300px;
    margin:0 5px 50px;
}
 
.eventList li{
    /* Отдельные события  */
    background:#F4F4F4;
    border:1px solid #EEEEEE;
    list-style:none;
    margin:5px;
    padding:4px 7px;
     
    /* Скругленные углы CSS3 */
    -moz-border-radius:4px;
    -webkit-border-radius:4px;
    border-radius:4px;
}
 
.eventList li:hover{
    /* Состояние hover: */
    cursor:pointer;
    background:#E6F8FF;
    border:1px solid #D4E6EE;
    color:#548DA5;
}
 
li span{
    /* Иконка события */
    display:block;
    float:left;
    height:16px;
    margin-right:5px;
    width:16px;
}
 
/* Индивидуальное изображение фона для каждого типа событий: */
 
li.news span.icon {     background:url(img/icons/newspaper.png) no-repeat; }
li.image span.icon {    background:url(img/icons/camera.png) no-repeat; }
li.milestone span.icon {    background:url(img/icons/chart.png) no-repeat; }
 
div.content{
    /* Данный div содержит дополнительные данные для содержания */
    display:none;
}
 
.eventHeading{
    /* Цветные заголовки с указанием года */
    font-size:2em;
    margin:-5px -5px 10px;
    padding:2px 5px;
    text-align:center;
}
 
/* Три цветовых схемы для заголовков: */
 
.eventHeading.chreme{
    background:#FBF7F0;
    border:1px solid #EEE4D4;
    color:#A78B5F;
}
 
.eventHeading.blue{
    background:#E6F8FF;
    border:1px solid #D4E6EE;
    color:#548DA5;
}

.eventHeading.green{
    background:#E6FFDF none repeat scroll 0 0;
    border:1px solid #C9E6C1;
    color:#6EA85F;
}
 
#timelineLimiter{
    /* Скрываем выступающиую временную шкалу */
    width:100%;
    overflow:hidden;
    padding-top:10px;
    margin:40px 0;
}
 
#scroll{
    /* Маленькая временная шкала под основной. скрывается здесь и будет показана с помощью jQuery, если JavaScript разрешен: */
    display:none;
    height:30px;
 
    background:#F5F5F5;
    border:1px solid #EEEEEE;
    color:#999999;
}
 
.scrollPoints{
    /* Года */
    float:left;
    font-size:1.4em;
    padding:4px 10px;
    text-align:center;
    width:100px;
     
    position:relative;
    z-index:10;
}

Класс .event задает стиль для секции года событий (элементы div, которые группируют события, происходившие в одном году).

Примерно в середине представленного кода можно найти строки, посвященные скругленным углам CSS3, которые работают в большинстве новых браузеров.

Также определяются фоновые изображения для каждого типа событий – изображений, новостей и вех.

Шаг 4 – jQuery

Последний шаг - добавляем интерактивность на страницу. Это будет производиться с помощью jQuery, включенной в секцию заголовка demo.php.

Код разбит на две части для более наглядного представления.

script.js – Часть 1
$(document).ready(function(){
    /* Код выполняется после полной загрузки DOM */
 
    /* Количество секций событий / лет с событиями */
    var tot=$('.event').length;
     
    $('.eventList li').click(function(e){
            showWindow('<div>'+$(this).find('div.content').html()+'</div>');
    });
     
    /* Каждая секция события имеет шиирину 320 px */
    var timelineWidth = 320*tot;
    var screenWidth = $(document).width();
     
    $('#timelineScroll').width(timelineWidth);
     
    /* Если временнная шкала шире, чем видимая область, выводим слайдер: */
    if(timelineWidth > screenWidth)
    {
        $('#scroll,#slider').show();
        $('#centered,#slider').width(120*tot);
         
        /* Делаем полоску прокрутки перетаскиваемой мышкой: */
        $('#bar').width((120/320)*screenWidth).draggable({
 
            containment: 'parent',
            drag: function(e, ui) {
     
                if(!this.elem)
                {
                    /* Данная секция выполняется только тогда, когда функция выполняется первый раз */
                     
                    this.elem = $('#timelineScroll');
                     
                    /* Разница между шириной слайдера и шириной его контейнера: */
                    this.maxSlide = ui.helper.parent().width()-ui.helper.width();
 
                    /* Разница между ширирной временной шкалы и шириной ее контейнера: */
                    this.cWidth = this.elem.width()-this.elem.parent().width();
                    this.highlight = $('#highlight');
                }
                 
                /* Переводим каждое движение слайдера на временную шкалу: */
                this.elem.css({marginLeft:'-'+((ui.position.left/this.maxSlide)*this.cWidth)+'px'});
                 
                /* Перемещаем выделение: */
                this.highlight.css('left',ui.position.left)
            }
        });
         
        $('#highlight').width((120/320)*screenWidth-3);
    }
     
});

Каждое событие является набором элементов div, которые содержат дополнительную информацию (заголовок, текст и дату). Все они скрыты с помощью свойства display:none в нашем файле CSS, но используются jQuery, так что всплывающее окно может быть наполнено данными без отправки запроса AJAX (также такой контент является видимым для поисковых механизмов, что очень хорошо для SEO). Получается решение выигрыш-выигрыш.

Данные получаются во второй части скрипта:

script.js – Часть 2
function showWindow(data)
{
    /* Каждое событие содержит набор скрытых div, которые содержаит информацию о событии: */
        
    var title = $('.title',data).text();
    var date = $('.date',data).text();
    var body = $('.body',data).html();
     
    $('<div id="overlay">').css({
                                 
        width:$(document).width(),
        height:$(document).height(),
        opacity:0.6
         
    }).appendTo('body').click(function(){
         
        $(this).remove();
        $('#windowBox').remove();
         
    });
     
    $('body').append('<div id="windowBox"><div id="titleDiv">'+title+'</div>'+body+'<div id="date">'+date+'</div></div>');
 
    $('#windowBox').css({
        width:500,
        height:350,
        left: ($(window).width() - 500)/2,
        top: ($(window).height() - 350)/2
    });
     
}

В данной функции обрабатывается параметр, переданный из Части 1, где происходит вызов функции, как обычный HTML и используются стандартные селекторы jQuery для заполнения переменных заголовков, даты и тела сообщения.

Шаг 5 – MySQL

Это последний шаг, который требуется, если вы планируете запустить демонстрацию у себя на сервере или добавить функцию к себе на сайт.

Чтобы сделать все отметки, нужно исправить таблицу MySQL временной шкалы из файла timeline.sql, который содержится в архиве с исходным кодом. Также нужно установить правильные параметры для связи с базой данных в connect.php.

Готово!

Заключение

Сегодня мы разобрали, как создать временную шкалу, которая поможет отметить важные моменту в истории. Временная шкала легко модифицируется и ее можно использовать где угодно.

Добавлено: 10 Апреля 2018 08:27:53 Добавил: Андрей Ковальчук

Время выполнения скрипта на PHP

В этоv примере я расскажу о том, как засечь время выполнения вашего кода

Наверняка вы уже где-нибудь видели маленькую надпись внизу страницы, что-нибудь типа:
"Страница создана за 0.1234 секунд"

Вот тоже самое можно сделать с помощью всего трех функций:
Функция string microtime(void) - возвращает строку типа "msec sec", где msec - количество миллисекунд и sec - текущее время в секундах с начала эпохи UNIX (0:00:00 January 1, 1970 GMT). Эта функция работает только в операционных системах, поддерживающих системный вызов gettimeofday().
Функция array explode(string separator, string string [, int limit]) - делит строку string в соответствии с разделителем separator и записывает все части (или не все, если указано количество частей limit) в массив, который функция выдает в качестве результата.
Функция void printf (string format [, mixed args]) - эта функция полностью аналогична своей C версии. Она выводит аргументы (args), по заданному формату format
Параметры:
format - строковый формат вывода данных
args - аргументы, для форматирования

Нам нужно перед выполнением кода, время которого мы хотим засечь, считать текущее время. После выполнения кода мы опять должны будем считать текущее время и вывести разницу.

Пишем следующие строки в самом начале вашего PHP скрипта:

<?php
$mtime = microtime();        //Считываем текущее время 
$mtime = explode(" ",$mtime);    //Разделяем секунды и миллисекунды
// Составляем одно число из секунд и миллисекунд
// и записываем стартовое время в переменную  
$tstart = $mtime[1] + $mtime[0];
?>

Теперь в самом конце, после кода, время выполнения которого нам надо засечь, пишем:

<?php
// Делаем все то же самое, чтобы получить текущее время 
$mtime = microtime(); 
$mtime = explode(" ",$mtime); 
$mtime = $mtime[1] + $mtime[0];
$totaltime = ($mtime - $tstart);//Вычисляем разницу 
// Выводим не экран 
printf ("Страница сгенерирована за %f секунд !", $totaltime);
?>

Обратите внимание, что простой вывод с помощью print или echo в данном случае не подходит, так как мы имеем дело с переменной не целочисленного типа, поэтому надо обязательно указать для PHP формат вывода такой переменной.

Вариант 2:
<?php // Определяем текущее время. Присваиваем переменной $Begin его значение. 

list($msec,$sec)=explode(chr(32),microtime()); 
$Begin=$sec+$msec; 

// В этом месте должен быть размещен ваш php скрипт.
// Вставить его можно двумя способами: 1) с помощью команды include(); 2) просто 
// скопировать его сюда. 
// К примеру: include ('myfile.php'); 

// Определяем ещё раз текущее время. Присваиваем переменной $end его значение.

list($msec,$sec)=explode(chr(32),microtime()); 
$end=$sec+$msec;

// Отнимаем время начала выполнения скрипта от конечного времени.
// Тоесть: отнимаем от переменной $end переменную $Begin
// Выводим время потраченое на выполнение скрипта
// с 4 знаками после запятой (точки). 

echo "Скрипт выполнен за ".round($end-$Begin,4)." сек."; 

?>

Добавлено: 06 Апреля 2018 21:14:33 Добавил: Андрей Ковальчук

Получить текущую дату и время

Для получения текущей даты и времени в php существует функция date. С ее помощью можно получать системную дату и время в огромном количестве различных форматов(год, месяц, день, час, минуты, секунды, день недели, номер дня в году, високосный год или нет и тд.). Подробнее о возможностях этой функции можно узнать на официальном сайте php: http://php.net/manual/ru/function.date.php В этом же рецепте приведен код вывода самых распространенных значений даты и времени.

Пример:

// вывод текущего года, месяца и дня 
echo date("Y-m-d"); 
 
// вывод текущего часа, минусы и секунды 
echo date("H:i:s"); 
 
// вывод дня недели 
echo date("l"); 
 
// номер дня недели 
echo date("w"); 
 
// номер дня в году  
echo date("z"); 
 
// определение високосного года 
if(date("L") == 1){ 
  echo "Год високосный"; 
}else{ 
  echo "Год не високосный"; 
}

Добавлено: 30 Марта 2018 19:08:40 Добавил: Андрей Ковальчук

Получить текущую дату и время по Гринвичу

Чтобы получить дату и время по Гринвичу можно воспользоваться функцией gmdate. Эта функция идентична функции date, которая была описана в предыдущем рецепте. Функция может принимать все те же модификаторы, что и date. Единственное отличие это то, что дата и время будет формироваться по Гринвичу.

Пример:

// вывод текущего года, месяца и дня 
echo gmdate("Y-m-d"); 
 
// вывод текущего часа, минусы и секунды 
echo gmdate("H:i:s"); 
 
// вывод дня недели 
echo gmdate("l"); 
 
// номер дня недели 
echo gmdate("w"); 
 
// номер дня в году  
echo gmdate("z");

Добавлено: 30 Марта 2018 19:07:00 Добавил: Андрей Ковальчук

Получить дату первого и последнего дня месяца

Чтобы получить дату первого и последнего дня текущего месяца стоит воспользоваться функцией date с необходимыми модификаторами. А для получения даты первых и последних дней, например, прошлого или следующего месяца, использование одних модификаторов будет не достаточно. Необходимо в функцию date вторым параметром передать метку времени в формате timestamp.

Пример:

// Получение даты первого дня текущего месяца 
echo date('Y-m-01') . "<br/>"; 
 
// Получение даты последнего дня текущего месяца 
echo date('Y-m-t') . "<br/>"; 
 
// Получение даты первого дня предыдущего месяца 
echo date("Y-m-01", strtotime("-1 month")) . "<br/>"; 
 
// Получение даты последнего дня предыдущего месяца 
echo date("Y-m-t", strtotime("-1 month")) . "<br/>";  
 
// Получение даты первого дня следующего месяца 
40 
 
echo date("Y-m-01", strtotime("+1 month")) . "<br/>"; 
 
// Получение даты последнего дня следующего месяца 
echo date("Y-m-t", strtotime("+1 month"));


В примере была использована, ранее не описанная функция strtotime, она преобразовывает текстовое значение даты(на английском языке) в метку времени timestamp.

Добавлено: 30 Марта 2018 19:05:15 Добавил: Андрей Ковальчук

Получить дату ближайшего понедельника

Получить дату ближайшего прошедшего и следующего понедельника можно, воспользовавшись теми же функциями, что и в предыдущем рецепте date и strtotime.

Пример:

// Дата ближайшего прошедшего понедельника 
echo date("Y-m-d", strtotime("last monday")); 
 
// Дата ближайшего следующего понедельника 
echo date("Y-m-d", strtotime("next monday"));

Добавлено: 30 Марта 2018 19:03:14 Добавил: Андрей Ковальчук

Сравнение дат

Для сравнения двух дат, их сначала необходимо преобразовать к виду timestamp, а потом просто сравнить два полученных числа. Для преобразования даты в формат timestamp, можно воспользоваться php функцией strtotime.

Пример:

// текущая дата на сервере   
$date_1 = date("Y-m-d"); 
// вторая дата, с которой будет сравнение 
$date_2 = "2014-10-21"; 
 
// перевод дат в формат timestamp 
$date_timestamp_1 = strtotime($date_1); 
$date_timestamp_2 = strtotime($date_2); 
 
// сравниваем 
if($date_timestamp_1 > $date_timestamp_2){ 
  echo "Первая дата больше"; 
}else if($date_timestamp_1 < $date_timestamp_2){ 
  echo "Вторая дата больше"; 
}else{ 
  echo "Даты равны"; 
} 

Добавлено: 30 Марта 2018 19:02:07 Добавил: Андрей Ковальчук

Разница между датами в днях

Чтобы узнать разницу между двумя датами, необходимо обе даты перевести в вид timestamp, после чего узнать разницу. Полученное число, будет являться разницей между датами в секундах. Для перевода секунд в дни достаточно просто разделить результат на количество секунд в сутках(86400 сек).

Пример:

// первая дата(текущая) 
$date_1 = date("Y-m-d"); 
// вторая дата 
$date_2 = "2014-10-31"; 
 
// перевод дат в формат timestamp 
$date_timestamp_1 = strtotime($date_1); 
$date_timestamp_2 = strtotime($date_2); 
 
// разница в секундах 
$diff = $date_timestamp_1 - $date_timestamp_2;  
// берем модуль, возможно значение с минусом 
$diff = abs($diff); 
42 
 
// Высчитываем количество дней  
// 3600 сек = 1 час 
// и округляем до целых 
$diff_day = intval($diff / (3600 * 24)); 
// вывод количества дней 
echo $diff_day;


В рецепте были использованы две новые функции: abs - получение
модуля числа, intval - округление числа до целых.

Добавлено: 30 Марта 2018 19:00:47 Добавил: Андрей Ковальчук

Текущий день недели по-русски

В php, функция date, умеет выводить дату и время в огромном количестве форматов, но, к сожалению, вывод по-русски не предусмотрен. Поэтому для вывода дня недели по-русски, необходимо написать свою функцию.

Пример:

// функция для определения дня недели по-русски 
function getDayRus(){ 
  // массив с названиями дней недели 
    $days = array( 
        'Воскресенье', 'Понедельник',  
'Вторник', 'Среда', 
        'Четверг', 'Пятница', 'Суббота' 
    ); 
  // номер дня недели 
  // с 0 до 6, 0 - воскресенье, 6 - суббота 
  $num_day = (date('w')); 
  // получаем название дня из массива 
  $name_day = $days[$num_day]; 
  // вернем название дня 
    return $name_day; 
} 
 
// пример использования 
echo getDayRus();

Добавлено: 30 Марта 2018 18:59:14 Добавил: Андрей Ковальчук

Название месяца по-русски

Как уже было сказано в предыдущем рецепте, php функция date, не умеет отдавать дату по-русски, поэтому для вывода названия месяца по-русски необходимо написать свою функцию.

Пример:

/* 
функция для получения названия месяца по-русски 
$num_month - номер месяца, 
не обязательный параметр, если параметр не задан,  
то функция вернет название текущего месяца 
*/ 
function getMonthRus($num_month = false){ 
  // если не задан номер месяца 
  if(!$num_month){ 
    // номер текущего месяца 
    $num_month = date('n'); 
  } 
    // массив с названиями месяцев 
    $monthes = array(   
        1 => 'Январь', 2 => 'Февраль', 3 => 'Март',  
    4 => 'Апрель', 5 => 'Май', 6 => 'Июнь',  
    7 => 'Июль', 8 => 'Август',9 => 'Сентябрь',  
    10 => 'Октябрь', 11 => 'Ноябрь',  
12 => 'Декабрь' 
  ); 
  // получаем название месяца из массива 
  $name_month = $monthes[$num_month]; 
  // вернем название месяца 
    return $name_month; 
} 
 
// пример использования 
echo getMonthRus(1) . "<br/>"; 
echo getMonthRus();

Добавлено: 30 Марта 2018 17:47:52 Добавил: Андрей Ковальчук

Время выполнения скрипта

Чтобы измерить время выполнения участка кода, необходимо перед началом выполнения кода, получить текущее время, а также по завершению выполнения кода, еще раз получить время. Далее просто высчитывается разница во времени. Поскольку скорость скрипта может измеряться в тысячных и десятитысячных долях секунды, необходимо воспользоваться php функцией microtime. Она позволяет получать метку времени в микросекундах.

Пример:

// засекаем начало выполнения скрипта 
$start_time = microtime(true);  
 
// код, время которого нужно замерить 
// пример скрипта 
for($i = 0; $i<1; $i+=0.000001);  
  
// засекаем завершение выполнения скрипта 
$finish_time = microtime(true);  
 
// высчитываем разницу во времени 
$result_time = $finish_time - $start_time;  
 
// форматированный вывод результата 
printf('Затрачено %.4F сек.', $result_time);


В примере была использована, ранее не описанная функция - printf, она позволяет выводить отформатированную строку.

Добавлено: 30 Марта 2018 07:40:53 Добавил: Андрей Ковальчук

Определить возраст по дате рождения

Для определения возраста достаточно проверить, было уже день рождение в текущем году или нет. Если уже прошло, то необходимо из текущего года вычесть год рождения. А если день рождения еще не прошел, то необходимо из текущего года вычесть год рождения и еще минус один год.

Пример:

/* 
* Получение возраста 
* $day - день 
* $mouth - месяц 
* $year - год 
*/ 
function getAge($day, $mouth, $year){ 
  // если в этом году уже был день рождения 
  if(  $mouth > date('m') ||  
$mouth == date('m') &&  
$day > date('d') 
){ 
    return (date('Y') - $year - 1); 
  }else{ 
    // если еще не прошел день рождения 
    $result = date('Y') - $year; 
  } 
  return $result; 
} 
 
// пример использования 
echo getAge(24, 1, 1989);

Добавлено: 30 Марта 2018 07:26:52 Добавил: Андрей Ковальчук