Aktueller Standort: Startseite> Neueste Artikel> Wie debugieren Sie im Detail durch die Funktion von DATE_GET_LAST_ERRORS (), wenn das Parsen für Datum fehlschlägt?

Wie debugieren Sie im Detail durch die Funktion von DATE_GET_LAST_ERRORS (), wenn das Parsen für Datum fehlschlägt?

gitbox 2025-09-08
<span><span><span class="hljs-meta">&lt;?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">?&gt;</span></span><span>

&lt;hr&gt;

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>-&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>

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.

3.. Dinge zu beachten

  1. 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.

  2. Es gilt nicht nur für DateTime :: createFromFormat () , sondern auch für DATE_PARSE () und DATE_PARSE_FROM_FORMAT () .

  3. Wenn die Parsen erfolgreich ist, sind die Fehler_Count und Warnung im zurückgegebenen Array beide 0, und die Fehler und Warnungen sind leer.

4. Zusammenfassung

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>