Time\Duration::compare

(PHP 8 >= 8.6.0)

Time\Duration::compare — Compara dos duraciones

Descripción

public static function Time\Duration::compare(Time\Duration $a, Time\Duration $b): int

Compara las duraciones a y b, teniendo en cuenta sus signos. El valor devuelto es adecuado como resultado de una retrollamada para usort().

Los operadores de comparación utilizan el mismo orden cuando ambos operandos son objetos Time\Duration.

Parámetros

a

La primera duración.

b

La segunda duración.

Valores devueltos

Devuelve un valor menor que 0 si a es más corta que b, un valor mayor que 0 si a es más larga que b, y 0 si ambas duraciones son iguales. No se puede inferir de forma fiable ningún significado particular del valor, salvo su signo. Las duraciones negativas siempre son menores que las positivas.

Ejemplos

Ejemplo #1 Ejemplo de Time\Duration::compare()

<?php
$oneSecond = \Time\Duration::fromSeconds(1);
$oneAndAHalfSeconds = \Time\Duration::fromMilliseconds(1500);
$billionNanoseconds = \Time\Duration::fromNanoseconds(1_000_000_000);

var_dump(\Time\Duration::compare($oneSecond, $oneAndAHalfSeconds) < 0);
var_dump(\Time\Duration::compare($oneAndAHalfSeconds, $oneSecond) > 0);
var_dump(\Time\Duration::compare($oneSecond, $billionNanoseconds) === 0);

// Las duraciones negativas son menores que las positivas.
var_dump(\Time\Duration::compare($oneSecond->negate(), $oneSecond) < 0);

El ejemplo anterior mostrará:

bool(true)
bool(true)
bool(true)
bool(true)

Ejemplo #2 Ordenación de duraciones con Time\Duration::compare()

<?php
$durations = [
    \Time\Duration::fromMinutes(2),
    \Time\Duration::fromMilliseconds(250),
    \Time\Duration::fromSeconds(5),
];

usort($durations, \Time\Duration::compare(...));

foreach ($durations as $duration) {
    printf("%d.%09d\n", $duration->seconds, $duration->nanoseconds);
}

El ejemplo anterior mostrará:

0.250000000
5.000000000
120.000000000

Véase también

+add a note

User Contributed Notes

There are no user contributed notes for this page.