Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Duration.php

class Duration

Same name in this branch
  1. 11.1.x vendor/phpunit/phpunit/src/Event/Value/Telemetry/Duration.php \PHPUnit\Event\Telemetry\Duration
  2. 11.1.x vendor/google/protobuf/src/Google/Protobuf/Duration.php \Google\Protobuf\Duration
  3. 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\Timer
View 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

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal