Мне нужна информация о запуске и остановке таймера в PHP. Мне нужно измерить прошедшее время с начала моей программы .exe (Im, используя функцию exec () в моем php-скрипте), пока не завершит выполнение и не покажет время, затраченное секундами. Есть ли способ, как я могу это сделать.
благодаря
Вы можете использовать microtime
и вычислить разницу:
$time_pre = microtime(true); exec(...); $time_post = microtime(true); $exec_time = $time_post - $time_pre;
Вот PHP-документы для microtime
: http://php.net/manual/en/function.microtime.php
Используйте функцию microtime
. Документация содержит пример кода.
Для вашей цели этот простой класс должен быть всем необходимым:
class Timer { private $time = null; public function __construct() { $this->time = time(); echo 'Working - please wait..<br/>'; } public function __destruct() { echo '<br/>Job finished in '.(time()-$this->time).' seconds.'; } } $t = new Timer(); // echoes "Working, please wait.." [some operations] unset($t); // echoes "Job finished in n seconds." n = seconds elapsed
.class Timer { private $time = null; public function __construct() { $this->time = time(); echo 'Working - please wait..<br/>'; } public function __destruct() { echo '<br/>Job finished in '.(time()-$this->time).' seconds.'; } } $t = new Timer(); // echoes "Working, please wait.." [some operations] unset($t); // echoes "Job finished in n seconds." n = seconds elapsed
Вы можете использовать Timer Class
<?php class Timer { var $classname = "Timer"; var $start = 0; var $stop = 0; var $elapsed = 0; # Constructor function Timer( $start = true ) { if ( $start ) $this->start(); } # Start counting time function start() { $this->start = $this->_gettime(); } # Stop counting time function stop() { $this->stop = $this->_gettime(); $this->elapsed = $this->_compute(); } # Get Elapsed Time function elapsed() { if ( !$elapsed ) $this->stop(); return $this->elapsed; } # Resets Timer so it can be used again function reset() { $this->start = 0; $this->stop = 0; $this->elapsed = 0; } #### PRIVATE METHODS #### # Get Current Time function _gettime() { $mtime = microtime(); $mtime = explode( " ", $mtime ); return $mtime[1] + $mtime[0]; } # Compute elapsed time function _compute() { return $this->stop - $this->start; } } ?>