En PHP, nous devons souvent enregistrer des informations sur le journal, qui contient généralement des horodatages pour marquer l'heure spécifique lorsque chaque événement se produit. Afin de s'assurer que le format temporel du fichier journal répond aux exigences du projet ou pour répondre aux besoins des différentes régions linguistiques, la fonction setLocale () et la fonction strftime () sont des outils très importants.
Cet article utilisera des exemples pratiques pour expliquer comment définir et formater l'horodatage dans le journal avec setLocale () .
fonction setlocale ()
La fonction setLocale () est utilisée pour définir l'environnement local du programme. Le lieu affecte la méthode de formatage des dates, du temps, des nombres, de la monnaie, etc. setLocale () peut être utilisé pour définir les paramètres régionaux () pour répondre aux besoins de différentes régions, telles que le chinois, l'anglais, le français, etc.
<span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(LC_TIME, </span><span><span class="hljs-string">'zh_CN.UTF-8'</span></span><span>);
</span></span>
Le code ci-dessus définit le lieu sur chinois (Chine) et spécifie que le codage est UTF-8.
fonction strftime ()
La fonction strftime () renvoie la date de date formatée ou la chaîne d'heure en fonction de la chaîne formatée donnée et du paramètre des paramètres régionaux actuel. Cette fonction est très utile pour la mise en forme personnalisée du temps.
<span><span><span class="hljs-variable">$formatted_time</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strftime</span></span><span>(</span><span><span class="hljs-string">"%YAnnée%mlune%djour %H:%M:%S"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$formatted_time</span></span><span>; </span><span><span class="hljs-comment">// Sortir:2025Année06lune20jour 10:30:15</span></span><span>
</span></span>
Dans les projets réels, nous enregistrons généralement les journaux, tels que les erreurs système, les opérations utilisateur, l'exécution des tâches, etc. Les horodatages dans les journaux doivent généralement être formatés en fonction des différents besoins pour garantir la lisibilité et la cohérence du temps.
Voici un exemple pratique de la façon d'utiliser SetLocale () et Strftime () pour formater des horodatages dans un fichier journal.
Supposons que nous ayons un système de journalisation simple qui nécessite la sortie de la date, de l'heure et des détails du journal dans le fichier journal. Nous voulons formater les horodatages dans le journal en fonction des paramètres régionaux actuels.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Réglez la zone sur le chinois(Chine),Encodé commeUTF-8</span></span><span>
</span><span><span class="hljs-title function_ invoke__">setlocale</span></span><span>(LC_TIME, </span><span><span class="hljs-string">'zh_CN.UTF-8'</span></span><span>);
</span><span><span class="hljs-comment">// Obtenez l'horodatage actuel</span></span><span>
</span><span><span class="hljs-variable">$current_timestamp</span></span><span> = </span><span><span class="hljs-title function_ invoke__">time</span></span><span>();
</span><span><span class="hljs-comment">// Formater l'horodatage</span></span><span>
</span><span><span class="hljs-variable">$formatted_time</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strftime</span></span><span>(</span><span><span class="hljs-string">"%YAnnée%mlune%djour %H:%M:%S"</span></span><span>, </span><span><span class="hljs-variable">$current_timestamp</span></span><span>);
</span><span><span class="hljs-comment">// jour志内容</span></span><span>
</span><span><span class="hljs-variable">$log_message</span></span><span> = </span><span><span class="hljs-string">"Start-up du système!"</span></span><span>;
</span><span><span class="hljs-comment">// 打开jour志文件并写入jour志</span></span><span>
</span><span><span class="hljs-variable">$log_file</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">'system.log'</span></span><span>, </span><span><span class="hljs-string">'a'</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$log_file</span></span><span>) {
</span><span><span class="hljs-variable">$log_entry</span></span><span> = </span><span><span class="hljs-variable">$formatted_time</span></span><span> . </span><span><span class="hljs-string">" - "</span></span><span> . </span><span><span class="hljs-variable">$log_message</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">fwrite</span></span><span>(</span><span><span class="hljs-variable">$log_file</span></span><span>, </span><span><span class="hljs-variable">$log_entry</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$log_file</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"jour志已记录!"</span></span><span>;
} </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">"无法打开jour志文件!"</span></span><span>;
}
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
setLocale () définit l'environnement des paramètres régionaux :
SetLocale (lc_time, 'zh_cn.utf-8') est utilisé pour définir le lieu sur chinois (Chine) et le coder sous le nom d'UTF-8, afin que la date et l'heure soient affichées au format chinois.
Obtenez l'horodatage actuel :
Utilisez la fonction Time () pour obtenir l'horodatage Unix actuel.
Horodatage du format :
STRFTIME () est utilisé pour formater l'horodatage à une chaîne "Année-Mont-jour: Minute: Deuxième" Selon le format spécifié. Des symboles de format tels que % y (à quatre chiffres), % m (mois), % d (jour), % h (heure), % m (minute), % s (secondes) sont utilisés ici.
Écrivez dans les fichiers journaux :
Sortie du journal :
Chaque journal sera écrit dans le fichier dans le format "Yyyyy MM Mois DD Day HH: MM: SS - Message".
<span><span><span class="hljs-number">2025</span></span><span><span class="hljs-string">Année06lune20jour</span></span><span> </span><span><span class="hljs-number">10</span></span><span><span class="hljs-string">:30:15</span></span><span> </span><span><span class="hljs-bullet">-</span></span><span> </span><span><span class="hljs-string">Start-up du système!</span></span><span>
</span></span>
En utilisant SetLocale () et Strftime () , nous pouvons facilement définir et formater des horodatages dans le journal PHP, en nous assurant que l'affichage de temps du journal est conforme aux exigences spécifiques des paramètres régionaux et du format. Le format temporel des journaux peut varier dans différentes régions ou par région, donc l'utilisation de ces fonctions peut améliorer la lisibilité des journaux et le support de localisation.
Dans les applications pratiques, la chaîne de format peut être ajustée en fonction des besoins pour répondre aux exigences de format de temps spécifiques.