<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Dieser Teil hat nichts mit dem Inhalt des Artikels zu tun</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Willkommen bei Read PHP Debugging Guide!\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Heute werden wir ein detailliertes Parsing-Fehler-Debugging untersuchen。\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
existieren PHP Mitte,Handhabungsdaten und Uhrzeiten sind eine sehr häufige Aufgabe,但有时候我们existieren使用 `</span><span><span class="hljs-title class_">DateTime</span></span><span>::</span><span><span class="hljs-title function_ invoke__">createFromFormat</span></span><span>()` oder `</span><span><span class="hljs-title function_ invoke__">date_parse</span></span><span>()` Bei der Parsen des Datums,Es kann eine Situation geben, in der das Parsen von Scheitern。为了准确找出问题所existieren,PHP Bereitgestellt `</span><span><span class="hljs-title function_ invoke__">date_get_last_errors</span></span><span>()` Funktion,Es kann Entwicklern helfen,Dies erleichtert das Debuggen。
</span><span><span class="hljs-comment">## 1. date_get_last_errors() Die Rolle von</span></span><span>
`</span><span><span class="hljs-title function_ invoke__">date_get_last_errors</span></span><span>()` Gibt ein assoziatives Array zurück,Enthält zwei Arten von Informationen:
- **warning_count**:Anzahl der Warnungen
- **warnings**:Warnmeldung Array
- **error_count**:Anzahl der Fehler
- **errors**:Fehlermeldung Array
Durch diese Informationen,Wir können die spezifischen Gründe für das Analyseversagen beurteilen,Zum Beispiel stimmt das Format nicht überein、Ungültiges Datum、Illegale Zeit usw.。
</span><span><span class="hljs-comment">## 2. Beispiel für die Nutzung</span></span><span>
Hier ist ein typisches Nutzungsszenario:
```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">// Das falsche Datum</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">"Analyse fehlgeschlagen!\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Anzahl der Fehler: "</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">"Anzahl der Warnungen: "</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">"Fehlerdetails:\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">"Warndetails:\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">"Erfolgreiche Analyse,Das Datum ist: "</span></span><span> . </span><span><span class="hljs-variable">$date</span></span><span>-></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>
Führen Sie den obigen Code aus und Sie können die folgende Ausgabe sehen:
<span><span>Analyse fehlgeschlagen!
</span><span><span class="hljs-section">Anzahl der Fehler: 2</span></span><span>
</span><span><span class="hljs-section">Anzahl der Warnungen: 0</span></span><span>
</span><span><span class="hljs-section">Fehlerdetails:</span></span><span>
- The parsed date was invalid
- The parsed date was invalid
</span></span>
Mit diesen Details können wir schnell Probleme finden, z. B. Monate oder Daten, die über den Rechtsbereich hinausgehen.
DATE_GET_LAST_ERRORS () gibt die Fehlermeldung für das letzte Parsen zurück, sodass sie unmittelbar nach dem Ausfall des Parsens aufgerufen werden sollte.
Es gilt nicht nur für DateTime :: createFromFormat () , sondern auch für DATE_PARSE () und DATE_PARSE_FROM_FORMAT () .
Wenn die Parsen erfolgreich ist, sind die Fehler_Count und Warnung im zurückgegebenen Array beide 0, und die Fehler und Warnungen sind leer.
Wenn das Parsen des Datums fehlschlägt, ist DATE_GET_LAST_ERRORS () ein sehr praktisches Debugging -Tool. Es kann spezifische Informationen zu Fehlern und Warnungen liefern, Entwicklern dabei helfen, schnell Probleme mit Datumsformaten oder Daten zu finden und die Debugging -Effizienz zu verbessern.
Durch die ordnungsgemäße Verwendung von Datum_get_Last_errors () können Sie verschiedene komplexe Datumsformate und potenzielle Eingangsfehler in der Entwicklung berücksichtigen.
<span></span>