Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 900483f493
Fetching contributors…

Cannot retrieve contributors at this time

file 67 lines (59 sloc) 1.525 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
<?php
/**
* Simple timers
*
* @package Propeller
*/

/**
* Класс для подсчета времени
*/
class Timer {
protected $startTime;
protected $stopTime = null;

function __construct($startNow = true){
if ($startNow) $this->start();
}

function start() {
$this->stopTime = null;
$this->startTime = microtime();
}

function stop() {
$this->stopTime = microtime();
return $this->getTime();
}

/**
* Возвращает промежуток времени от старта до остановки таймера
* Если таймер ещё не остановлен, то до текущего времени
*
* @return unknown
*/
function getTime() {
$toTime = !is_null($this->stopTime) ? $this->stopTime : microtime();
return $this->elapsed($this->startTime, $toTime);
}

/**
* Возвращает разницу между двумя временными промежутками
*
* @param unknown_type $a
* @param unknown_type $b
* @return unknown
*/
function elapsed($a, $b) {
list($aMicro, $aInt) = explode(' ', $a);
list($bMicro, $bInt) = explode(' ', $b);

if ($aInt > $bInt) {
return ($aInt - $bInt) + ($aMicro - $bMicro);
} else if ($aInt == $bInt) {
if ($aMicro > $bMicro) {
return ($aInt - $bInt) + ($aMicro - $bMicro);
} else if ($aMicro < $bMicro) {
return ($bInt - $aInt) + ($bMicro - $aMicro);
} else {
return 0;
}
} else {
return ($bInt - $aInt) + ($bMicro - $aMicro);
}
}
}

?>
Something went wrong with that request. Please try again.