Bonjour,
J'ai un formulaire dans mon application qui possède un champs caché avec comme valeur time(). Lorsque le formulaire est soumis, je crée une nouvelle variable time(), puis je fais la différence entre le deux pour connaitre le temps approximatif de réponse à mon formulaire.
Je pense que l'idée est assez clair.
Cependant j'ai un problème que je n'arrive pas à régler évidemment (ça peut pas juste marcher du premier coup...).
J'affiche le résultat grâce à un date("H:i:s", $diff) qui me renvoit la différence sous la forme xx:xx:xx mais toujours avec une heure de plus sur mon serveur dédié. Ca marchait bien en local.
Je comprends bien que le problème se situe au niveau des fuseaux horaires. J'ai donc changé dans le php.ini de mon serveur dédié la timezone pour mettre "Europe/Paris". L'heure de mon serveur et de php indiquent bien la bonne heure. Mais les deux variables time() affichent toujours une différence de +1.
Je me dis que je vais voir la configuration en local. Et là surprise, le timezone par défaut est UTC. En le changeant en "Europe/Paris", là je me retrouve avec le même problème que sur mon dédié.
Donc ma question, avez-vous une idée de pourquoi les deux variables créées de la même façon (avec un time()) ne se font pas sur le même fuseau horaire ? Savez-vous comment corriger le problème ?
Je sais que certains vont me proposer de faire des opérations sur les variables créées ou changer le timezone en UTC dans le php.ini. Mais ces solutions ne me conviennent pas car je récupère dans mon application des dates avec les heures lorsque les internautes font certaines actions. Si je change le fuseau horaire, je risque de récupérer des heures décalées 6 mois par an. De plus, faire des opérations sur les time() m'obligerait à mettre à jour mon application à chaque changement d'heure.
J'espère que j'ai bien défini le problème et que quelqu'un a déjà rencontré un problème similaire.
Merci pour votre aide.