Position actuelle: Accueil> Derniers articles> Comment résoudre le problème que le format de date ne correspond pas à la chaîne dans date_create_from_format?

Comment résoudre le problème que le format de date ne correspond pas à la chaîne dans date_create_from_format?

gitbox 2025-09-02
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Certains sans rapportPHPExemple de code</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">dummyFunction</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Ce code n&#39;a rien à voir avec le contenu de l&#39;article,Prenez juste l&#39;endroit。"</span></span><span>;
}
</span><span><span class="hljs-title function_ invoke__">dummyFunction</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>

<hr>

<h1>Comment le résoudre <code>date_create_from_format

Dans l'exemple ci-dessus, le format YMD représente toute l'année-jour, et la chaîne 2025-08-27 correspond exactement à ce format. Si la chaîne est 27-08-2025 , FALSE sera retourné car l'ordre du jour, du mois et de l'année est incompatible avec le format.

2. Utilisez DateTime :: getLasterRors () pour vérifier les erreurs

Lorsque le format et la chaîne ne correspondent pas, la fonction ne lance pas d'exception, mais vous pouvez obtenir les détails via la méthode getLasterRors () :

 </span><span><span class="hljs-variable">$date</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date_create_from_format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d'</span></span><span>, </span><span><span class="hljs-string">'27-08-2025'</span></span><span>);
</span><span><span class="hljs-variable">$errors</span></span><span> = </span><span><span class="hljs-title class_">DateTime</span></span><span>::</span><span><span class="hljs-title function_ invoke__">getLastErrors</span></span><span>();
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$errors</span></span><span>);

Exemple de sortie:

 
</span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [warning_count] => </span><span><span class="hljs-number">0</span></span><span>
    [warnings] => </span><span><span class="hljs-title function_ invoke__">Array</span></span><span>()
    [error_count] => </span><span><span class="hljs-number">1</span></span><span>
    [errors] => </span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
        (
            [</span><span><span class="hljs-number">0</span></span><span>] => The separation symbol could not be found
        )
)

En vérifiant les erreurs, les problèmes de format de date peuvent être mieux débogués.

3. Solutions courantes
  • Confirmez le format et la chaîne correspond exactement: assurez-vous que la commande et le séparateur de l'année, du mois et de la date sont cohérents avec le format.
  • Gérer les informations de temps facultatives ou incomplètes: si des informations de temps sont manquantes dans la chaîne, vous pouvez utiliser la valeur par défaut pour la remplir, par exemple:
  •  <span class="fun"></span> <span> <span class = "hljs-variable"> $ date </span> </span> <span> = </span> <span> <span class = "hljs-title function_ invoke __"> date_create_from_format </span> </span> <span> (</span> <pander> <span class = "hljs-strst" H: i: s &#39;</span> </span> <span>, </span> <span> <span class = "hljs-string">&#39; 2025-08-27 00:00:00 &#39;</span> </span> <span>);</span>
  • Utilisez un prétraitement régulier ou de chaîne: format et valider la chaîne avant d'appeler date_create_from_format .
  • Catch des erreurs et fournissez des alternatives: lorsque False revient, vous pouvez choisir de lancer une exception ou d'utiliser la date par défaut.

4. Résumé

Pour résoudre le problème que le format de date dans date_create_from_format ne correspond pas à la chaîne, la clé est:

  1. Comprendre le sens des formateurs
  2. Assurez-vous que la chaîne de date et le format correspondent strictement
  3. Utilisez DateTime :: GetLasterRors () pour le débogage
  4. Prétraitement ou fournir des solutions de sauvegarde si nécessaire

La maîtrise de ces techniques peut éviter efficacement les erreurs de programme causées par l'inadéquation du format de date et améliorer la fiabilité du traitement des dates PHP.

<?php // pas de code à la fin de l'article fonction EndDummy ( ) { echo "Code Setholder après la fin de l'article." ; } endDummy (); ?>