(PHP 8 >= 8.6.0)
Time\Duration::fromIso8601DurationString â CrĂ©e une durĂ©e Ă partir d'une chaĂźne de durĂ©e ISO 8601
$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.
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.
Retourne un nouvel objet Time\Duration.
Si specification ne peut pas ĂȘtre analysĂ©e comme une
durée ISO 8601, une
Time\TimeException est lancée.
Si specification contient un désignateur de date
(Y, M, W ou
D), une
Time\TimeException est lancée.
Si specification est une date/heure ou un intervalle
de temps plutÎt qu'une durée, une
Time\TimeException est lancée.
Si la durée résultante dépasse la longueur maximale d'une durée, une Time\TimeException est lancée.
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