Position actuelle: Accueil> Derniers articles> Lorsque l'analyse de la date échoue, comment déboguer en détail via la fonction date_get_last_errors ()?

Lorsque l'analyse de la date échoue, comment déboguer en détail via la fonction date_get_last_errors ()?

gitbox 2025-09-08
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Cette partie n&#39;a rien à voir avec le contenu de l&#39;article</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Bienvenue à lire PHP Guide de débogage!\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Aujourd&#39;hui, nous explorerons le débogage d&#39;erreur d&#39;analyse de date de date approfondie。\n"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

exister PHP milieu,Gestion des dates et des temps est une tâche très courante,但有时候我们exister使用 `</span><span><span class="hljs-title class_">DateTime</span></span><span>::</span><span><span class="hljs-title function_ invoke__">createFromFormat</span></span><span>()` ou `</span><span><span class="hljs-title function_ invoke__">date_parse</span></span><span>()` Quand l&#39;analyse de la date,Il peut y avoir une situation où l&#39;analyse de l&#39;échec。为了准确找出问题所exister,PHP Fourni `</span><span><span class="hljs-title function_ invoke__">date_get_last_errors</span></span><span>()` fonction,Il peut aider les développeurs à obtenir des informations détaillées sur les échecs d&#39;analyse,Cela facilite le débogage。

</span><span><span class="hljs-comment">## 1. date_get_last_errors() Le rôle de</span></span><span>

`</span><span><span class="hljs-title function_ invoke__">date_get_last_errors</span></span><span>()` Renvoie un tableau associatif,Contient deux types d&#39;informations:

- **warning_count**:Nombre d&#39;avertissements  
- **warnings**:Arrimage des messages d&#39;avertissement  
- **error_count**:Nombre d&#39;erreurs  
- **errors**:Tableau des messages d&#39;erreur  

À travers ces informations,Nous pouvons juger les raisons spécifiques de l&#39;échec de l&#39;analyse,Par exemple, le format ne correspond pas、Date non valide、Temps illégal, etc.。

</span><span><span class="hljs-comment">## 2. Exemple d&#39;utilisation</span></span><span>

Voici un scénario d&#39;utilisation typique:

```php
</span><span><span class="hljs-variable">$dateString</span></span><span> = </span><span><span class="hljs-string">'2025-13-40'</span></span><span>; </span><span><span class="hljs-comment">// La mauvaise date</span></span><span>
</span><span><span class="hljs-variable">$format</span></span><span> = </span><span><span class="hljs-string">'Y-m-d'</span></span><span>;

</span><span><span class="hljs-variable">$date</span></span><span> = </span><span><span class="hljs-title class_">DateTime</span></span><span>::</span><span><span class="hljs-title function_ invoke__">createFromFormat</span></span><span>(</span><span><span class="hljs-variable">$format</span></span><span>, </span><span><span class="hljs-variable">$dateString</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-variable">$date</span></span><span>) {
    </span><span><span class="hljs-variable">$errors</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date_get_last_errors</span></span><span>();
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"L&#39;analyse a échoué!\n"</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Nombre d&#39;erreurs: "</span></span><span> . </span><span><span class="hljs-variable">$errors</span></span><span>[</span><span><span class="hljs-string">'error_count'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Nombre d&#39;avertissements: "</span></span><span> . </span><span><span class="hljs-variable">$errors</span></span><span>[</span><span><span class="hljs-string">'warning_count'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
    
    </span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-keyword">empty</span></span><span>(</span><span><span class="hljs-variable">$errors</span></span><span>[</span><span><span class="hljs-string">'errors'</span></span><span>])) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Détails d&#39;erreur:\n"</span></span><span>;
        </span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$errors</span></span><span>[</span><span><span class="hljs-string">'errors'</span></span><span>] </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$error</span></span><span>) {
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"  - <span class="hljs-subst">$error</span></span></span><span>\n";
        }
    }
    
    </span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-keyword">empty</span></span><span>(</span><span><span class="hljs-variable">$errors</span></span><span>[</span><span><span class="hljs-string">'warnings'</span></span><span>])) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Détails d&#39;avertissement:\n"</span></span><span>;
        </span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$errors</span></span><span>[</span><span><span class="hljs-string">'warnings'</span></span><span>] </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$warning</span></span><span>) {
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"  - <span class="hljs-subst">$warning</span></span></span><span>\n";
        }
    }
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Analyse réussie,La date est: "</span></span><span> . </span><span><span class="hljs-variable">$date</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d'</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
</span></span>

Exécutez le code ci-dessus et vous pouvez voir la sortie suivante:

 <span><span>L&#39;analyse a échoué!
</span><span><span class="hljs-section">Nombre d&#39;erreurs: 2</span></span><span>
</span><span><span class="hljs-section">Nombre d&#39;avertissements: 0</span></span><span>
</span><span><span class="hljs-section">Détails d&#39;erreur:</span></span><span>
  - The parsed date was invalid
  - The parsed date was invalid
</span></span>

Avec ces détails, nous pouvons rapidement localiser des problèmes, tels que des mois ou des dates qui sont au-delà de la portée légale.

3. Choses à noter

  1. date_get_last_errors () renvoie le message d'erreur pour l'analyse de la dernière date , il doit donc être appelé immédiatement après l'échec de l'analyse.

  2. Il est non seulement valable pour DateTime :: CreateFromFormat () , mais aussi pour date_parse () et date_parse_from_format () .

  3. Si l'analyse est réussie, l'erreur_count et warning_count dans le tableau renvoyé sont à la fois 0, et les tableaux d'erreurs et d'avertissements sont vides.

4. Résumé

Lorsque l'analyse de date échoue, date_get_last_errors () est un outil de débogage très pratique. Il peut fournir des informations spécifiques sur les erreurs et les avertissements, aider les développeurs à trouver rapidement des problèmes avec les formats de date ou les données et améliorer l'efficacité du débogage.

En utilisant correctement Date_get_last_errors () , vous pouvez gérer divers formats de date complexes et des erreurs d'entrée potentielles plus calmement en développement.

 <span></span>