Récupère les informations d'une date donnée suivant un format spécifique

# date_parse_from_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

date_parse_from_format — Récupère les informations d'une date donnée suivant un format spécifique

### Description

function date_parse_from_format(string `$format`, string `$datetime`): array

Retourne un tableau associatif contenant des informations détaillées sur une date/moment donnée.

### Liste de paramètres

`format`

  Documentation sur l'utilisation du `format`, se référer à la documentation de DateTimeImmutable::createFromFormat(). Les mêmes règles s'appliquent.

`datetime`

  Chaîne représentant la date/moment.

### Valeurs de retour

Retourne un tableau associatif avec des informations détaillées sur la date/moment donnée.

Le tableau retourné a des clés pour `year`, `month`, `day`, `hour`, `minute`, `second`, `fraction`, et `is_localtime`.

Si `is_localtime` est présent, alors `zone_type` indique le type de fuseau horaire. Pour le type `1` (décalage UTC) les champs `zone` et `is_dst` sont ajoutés. Pour le type `2` (abréviation) les champs `tz_abbr` et `is_dst` sont ajoutés. Pour le type `3` (identifiant de fuseau horaire) les champs `tz_abbr` et `tz_id` sont ajoutés.

Le tableau inclut les champs `warning_count` et `warnings`. Le premier indique le nombre d'avertissements. Les clés du tableau `warnings` indiquent la position dans le paramètre `datetime` où l'avertissement s'est produit, avec la valeur de chaîne décrivant l'avertissement lui-même. Un exemple ci-dessous montre un tel avertissement.

Le tableau inclut aussi les champs `error_count` et `errors`. Le premier indique le nombre d'erreurs. Les clés du tableau `errors` indiquent la position dans le paramètre `datetime` où l'erreur s'est produite, avec la valeur de chaîne décrivant l'erreur elle-même. Un exemple ci-dessous montre une telle erreur.

Avertissement

Le nombre d'éléments de tableau dans les tableaux `warnings` et `errors` peut être inférieur à `warning_count` ou `error_count` s'ils se sont produits à la même position.

### Erreurs / Exceptions

Cette fonction lance une ValueError lorsque le `datetime` contient des octets NULL.

### Historique

Version | Description
--- | ---
8.0.21, 8.1.8, 8.2.0 | Lance désormais une ValueError lorsque des octets NULL sont passés dans `datetime`, ce qui était auparavant ignoré silencieusement.
7.2.0 | L'élément `zone` du tableau retourné représente des secondes au lieu de minutes maintenant, et son signe est inversé. Par exemple `-120` est maintenant égal à `7200`.

### Exemples

Exemple #1 Exemple avec date_parse_from_format()

    <?php
    $date = "6.1.2009 13:00+01:00";
    print_r(date_parse_from_format("j.n.Y H:iP", $date));

L'exemple ci-dessus va afficher :

    Array
    (
        [year] => 2009
        [month] => 1
        [day] => 6
        [hour] => 13
        [minute] => 0
        [second] => 0
        [fraction] => 0
        [warning_count] => 0
        [warnings] => Array
            (
            )

        [error_count] => 0
        [errors] => Array
            (
            )

        [is_localtime] => 1
        [zone_type] => 1
        [zone] => 3600
        [is_dst] =>
    )

Exemple #2 Exemple de date_parse_from_format() avec des warnings (avertissements)

    <?php
    $date = "26 August 2022 22:30 pm";
    $parsed = date_parse_from_format("j F Y G:i a", $date);

    echo "Warnings count: ", $parsed['warning_count'], "\n";
    foreach ($parsed['warnings'] as $position => $message) {
        echo "\tOn position {$position}: {$message}\n";
    }

L'exemple ci-dessus va afficher :

    Warnings count: 1
    	On position 23: The parsed time was invalid

Exemple #3 Exemple de date_parse_from_format() avec des errors (erreurs)

    <?php
    $date = "26 August 2022 CEST";
    $parsed = date_parse_from_format("j F Y H:i", $date);

    echo "Errors count: ", $parsed['error_count'], "\n";
    foreach ($parsed['errors'] as $position => $message) {
        echo "\tOn position {$position}: {$message}\n";
    }

L'exemple ci-dessus va afficher :

    Errors count: 3
    	On position 15: A two digit hour could not be found
    	On position 19: Not enough data available to satisfy format

### Voir aussi

- DateTimeImmutable::createFromFormat() - Analyse une heure au format texte selon le format spécifié.
- checkdate() - Valide une date grégorienne

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