Skip to content

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

67 lines (59 sloc) 1.525 kb
<?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);
}
}
}
?>
Jump to Line
Something went wrong with that request. Please try again.