Time\Duration::fromIso8601DurationString

(PHP 8 >= 8.6.0)

Time\Duration::fromIso8601DurationString — Crée une durée à partir d'une chaîne de durée ISO 8601

Description

public static function Time\Duration::fromIso8601DurationString(string $specification): Time\Duration

Crée une durée non négative à partir de la partie horaire d'une » spécification de durée ISO 8601, comme PT1H30M.

Liste de paramètres

specification

Une spécification de durée ISO 8601. Le format commence par la lettre P, pour period (période), suivie de la lettre T, pour time (temps), et d'une ou plusieurs valeurs entières, chacune suivie d'un désignateur de période :

Désignateur de période Description
H heures
M minutes
S secondes

Les désignateurs doivent apparaître dans cet ordre, mais chacun est facultatif. Une valeur peut dépasser la plage naturelle de son unité : PT90M et PT1H30M décrivent donc la même durée.

Les désignateurs de date Y, M, W et D sont rejetés, car les années, les mois, les semaines et les jours n'ont pas de longueur fixe. Les valeurs fractionnaires, comme PT0.5S, ne sont pas supportées non plus.

Valeurs de retour

Retourne un nouvel objet Time\Duration.

Erreurs / Exceptions

Exemples

Exemple #1 Exemple avec Time\Duration::fromIso8601DurationString()

<?php
var_dump(\Time\Duration::fromIso8601DurationString('PT1H30M'));

var_dump(\Time\Duration::fromIso8601DurationString('PT90S')->seconds);

try {
    \Time\Duration::fromIso8601DurationString('P1D');
} catch (\Time\TimeException $e) {
    echo $e->getMessage(), PHP_EOL;
}

try {
    \Time\Duration::fromIso8601DurationString('PT0.5S');
} catch (\Time\TimeException $e) {
    echo $e->getMessage(), PHP_EOL;
}

L'exemple ci-dessus va afficher :

object(Time\Duration)#1 (3) {
  ["seconds"]=>
  int(5400)
  ["nanoseconds"]=>
  int(0)
  ["negative"]=>
  bool(false)
}
int(90)
The ISO 8601 duration string may only contain the time (T) aspect
The ISO 8601 duration string could not be parsed

Voir aussi

+add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top