Разница во времени на php

Discussion in 'PHP' started by George767, 24 May 2008.

  1. George767

    George767 Elder - Старейшина

    Joined:
    10 Jan 2006
    Messages:
    129
    Likes Received:
    25
    Reputations:
    -1
    Кому-нибудь известен скрипт на php который считает разницу во времени между двумя врменами. Скажем 1540 и 1820 - 2 часа 40 минут. Что бы адекватно считалась разница между прошлым и следующим днем: 2100 и 0200. Знаю реализовать несложно, но много кода писать..

    Реализацию с time() не предлагайте ибо нет конкретных дат, только время (+/- одни сутки).
     
  2. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    0900 и 0901. Прошла минута или сутки?
    Точно, пусть кто-нибудь другой напишет =)
     
  3. cash$$$

    cash$$$ Banned

    Joined:
    6 Jan 2008
    Messages:
    385
    Likes Received:
    246
    Reputations:
    10
    1) Функция string microtime(void)

    Возвращает строку типа "msec sec", где msec - количество миллисекунд и sec - текущее время в секундах.Эта функция работает только в операционных системах, поддерживающих системный
    вызов gettimeofday().

    2) Функция

    array explode(string separator, string string [, int
    limit])
    Делит строку string в соответствии с разделителем separator и записывает все части (или не все, если указано количество частей limit) в массив, который функция выдает в качестве результата.

    3) Функция

    void printf (string format [, mixed args])
    Эта
    функция полностью аналогична своей C версии. Она выводит аргументы (args), по заданному формату format

    Параметры:
    format - строковый формат вывода данных

    args - аргументы, для форматирования
    PHP:
    //Считываем текущее время

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

        
    $tstart $mtime

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

    //Делаем все то же самое, чтобы
    получить текущее время 
        $mtime 
    =
    microtime(); 
        
    $mtime explode("
    "
    ,$mtime); 
        
    $mtime $mtime[1] +
    $mtime[0]; 
    //Записываем время окончания в другую переменную

        
    $tend $mtime
    //Вычисляем разницу

        
    $totaltime = ($tend $tstart);

    //Выводим не экран 
        
    printf ("Страница
    сгенерирована за %f секунд !"
    $totaltime);
    Обратите внимание, что простой вывод с помощью print или echo в данном случае не подходит, так как мы имеем дело с переменной не целочисленного типа, поэтому надо обязательно указать для PHP формат вывода такой переменной.
     
    #3 cash$$$, 24 May 2008
    Last edited: 24 May 2008
  4. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    http://ru2.php.net/manual/ru/function.mktime.php