class Duration
Same name in this branch
- 11.1.x vendor/phpunit/phpunit/src/Event/Value/Telemetry/Duration.php \PHPUnit\Event\Telemetry\Duration
- 11.1.x vendor/google/protobuf/src/Google/Protobuf/Duration.php \Google\Protobuf\Duration
- 11.1.x vendor/google/protobuf/src/GPBMetadata/Google/Protobuf/Duration.php \GPBMetadata\Google\Protobuf\Duration
@psalm-immutable
Hierarchy
- class \SebastianBergmann\Timer\Duration
Expanded class hierarchy of Duration
1 file declares its use of Duration
- Facade.php in vendor/
phpunit/ phpunit/ src/ TextUI/ Output/ Facade.php
2 string references to 'Duration'
- Builder::fromParameters in vendor/
phpunit/ phpunit/ src/ TextUI/ Configuration/ Cli/ Builder.php - Loader::phpunit in vendor/
phpunit/ phpunit/ src/ TextUI/ Configuration/ Xml/ Loader.php
File
-
vendor/
phpunit/ php-timer/ src/ Duration.php, line 18
Namespace
SebastianBergmann\TimerView source
final class Duration {
private readonly float $nanoseconds;
private readonly int $hours;
private readonly int $minutes;
private readonly int $seconds;
private readonly int $milliseconds;
public static function fromMicroseconds(float $microseconds) : self {
return new self($microseconds * 1000);
}
public static function fromNanoseconds(float $nanoseconds) : self {
return new self($nanoseconds);
}
private function __construct(float $nanoseconds) {
$this->nanoseconds = $nanoseconds;
$timeInMilliseconds = $nanoseconds / 1000000;
$hours = floor($timeInMilliseconds / 60 / 60 / 1000);
$hoursInMilliseconds = $hours * 60 * 60 * 1000;
$minutes = floor($timeInMilliseconds / 60 / 1000) % 60;
$minutesInMilliseconds = $minutes * 60 * 1000;
$seconds = floor(($timeInMilliseconds - $hoursInMilliseconds - $minutesInMilliseconds) / 1000);
$secondsInMilliseconds = $seconds * 1000;
$milliseconds = $timeInMilliseconds - $hoursInMilliseconds - $minutesInMilliseconds - $secondsInMilliseconds;
$this->hours = (int) $hours;
$this->minutes = $minutes;
$this->seconds = (int) $seconds;
$this->milliseconds = (int) $milliseconds;
}
public function asNanoseconds() : float {
return $this->nanoseconds;
}
public function asMicroseconds() : float {
return $this->nanoseconds / 1000;
}
public function asMilliseconds() : float {
return $this->nanoseconds / 1000000;
}
public function asSeconds() : float {
return $this->nanoseconds / 1000000000;
}
public function asString() : string {
$result = '';
if ($this->hours > 0) {
$result = sprintf('%02d', $this->hours) . ':';
}
$result .= sprintf('%02d', $this->minutes) . ':';
$result .= sprintf('%02d', $this->seconds);
if ($this->milliseconds > 0) {
$result .= '.' . sprintf('%03d', $this->milliseconds);
}
return $result;
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
Duration::$hours | private | property | |
Duration::$milliseconds | private | property | |
Duration::$minutes | private | property | |
Duration::$nanoseconds | private | property | |
Duration::$seconds | private | property | |
Duration::asMicroseconds | public | function | |
Duration::asMilliseconds | public | function | |
Duration::asNanoseconds | public | function | |
Duration::asSeconds | public | function | |
Duration::asString | public | function | |
Duration::fromMicroseconds | public static | function | |
Duration::fromNanoseconds | public static | function | |
Duration::__construct | private | function |