src/Zipkin/RealSpan.php
public function finish(?int $timestamp = null): void
    {
        if ($timestamp !== null && !Timestamp\isValid($timestamp)) {
            throw new InvalidArgumentException('Invalid timestamp');
        }

        if ($timestamp === null) {
            $timestamp = now();
        }

        $this->recorder->finish($this->traceContext, $timestamp);
    }
public function finish(?int $timestamp = null): void
    {
        if ($timestamp !== null && !Timestamp\isValid($timestamp)) {
            throw new InvalidArgumentException('Invalid timestamp');
        }

        if ($timestamp === null) {
            $timestamp = now();
        }

        $this->recorder->finish($this->traceContext, $timestamp);
    }
Like {@link #finish()}, except with a given timestamp in microseconds.

{@link zipkin.Span#duration Zipkin's span duration} is derived by subtracting the start
timestamp from this, and set when appropriate.

@param int|null $timestamp
@return void
@throws \InvalidArgumentException