Esperar durante un número de segundos y nanosegundos

# time_nanosleep

(PHP 5, PHP 7, PHP 8)

time_nanosleep — Esperar durante un número de segundos y nanosegundos

### Descripción

function time_nanosleep(int `$seconds`, int `$nanoseconds`): array|bool

time_nanosleep() impone un retraso de ejecución de `seconds` segundos y `nanoseconds` nanosegundos.

### Parámetros

`seconds`

  Debe ser un integer no negativo.

`nanoseconds`

  Debe ser un integer no negativo, inferior a 1000 millones.

  > Nota: En Windows, el sistema puede esperar más tiempo que el número de nanosegundos dado, según el hardware.

### Valores devueltos

Esta función retorna `true` en caso de éxito o `false` si ocurre un error.

Si el retraso es interrumpido por una señal, se devolverá un array asociativo con los elementos:

- `seconds`: número de segundos restantes en el retraso
- `nanoseconds`: número de nanosegundos restantes en el retraso

### Ejemplos

Ejemplo #1 Ejemplo con time_nanosleep()

    <?php
    // ¡Atención! Esto no funcionará como se espera si se devuelve un array
    if (time_nanosleep(0, 500000000)) {
        echo "Dormir durante media segundo.\n";
    }

    // Esto es mejor:
    if (time_nanosleep(0, 500000000) === true) {
        echo "Dormir durante media segundo.\n";
    }

    // Y esto es la mejor forma:
    $nano = time_nanosleep(2, 100000);

    if ($nano === true) {
        echo "Dormir durante 2 segundos y 100 microsegundos.\n";
    } elseif ($nano === false) {
        echo "El retraso ha fallado.\n";
    } elseif (is_array($nano)) {
        $seconds = $nano['seconds'];
        $nanoseconds = $nano['nanoseconds'];
        echo "Interrumpido por una señal.\n";
        echo "Tiempo restante: $seconds segundos, $nanoseconds nanosegundos.";
    }
    ?>

### Ver también

- sleep() - Detiene la ejecución durante algunos segundos
- usleep() - Detiene la ejecución durante algunas microsegundos
- time_sleep_until() - Detiene el script durante una duración especificada
- set_time_limit() - Establece el tiempo máximo de ejecución de un script

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open