Avez-vous remarqué qu' date()
fonction 2x plus rapide que d'habitude si vous définissez réelle fuseau horaire à l'intérieur de votre script avant tout date()
appel? Je suis très curieux à ce sujet.
Regardez ce simple morceau de code:
<?php
$start = microtime(true);
for ($i = 0; $i < 100000; $i++) date('Y-m-d H:i:s');
echo (microtime(true) - $start);
?>
Il appelle juste date()
fonction à l'aide d' for
boucle de 100 000 fois. Le résultat que j'ai obtenu est toujours autour de 1,6 secondes (Windows, PHP 5.3.5) mais...
Si j'ai mis en même temps la zone de nouveau en ajoutant une absurde ligne avant de commencer:
date_default_timezone_set(date_default_timezone_get());
Je reçois une fois en dessous de 800ms; ~2x plus rapide (le même serveur).
Je regardais autour de moi pour trouver une quelconque explication raisonnable à ce problème, mais n'a pas de succès. De mon point de vue, cette ligne supplémentaire est inutile, mais PHP n'est pas d'accord avec moi.
J'ai essayé ce test sur les deux serveurs linux (versions différentes de PHP) et a obtenu différentes résultant fois, mais en proportion ~6:1.
Remarque: la date.le fuseau horaire de la propriété en php.ini a été correctement définie (Europe/Paris).
J'étais à la recherche pour les questions ici et de ne pas trouver quelque chose de similaire. J'ai également vérifié manuel pour date_default_time_zone() la fonction @ php.net et vu que je suis pas le seul qui a remarqué ça, mais ne peut toujours pas comprendre pourquoi ça arrive?
N'importe qui?
MERCI LES GARS, J'AI VRAIMENT APPRÉCIER TOUTES VOS RÉPONSES ET COMMENTAIRES.