Si j'enregistre la date courante avec la fonction time() et que je l'affiche avec la fonction date(), je n'ai pas de décalage horaire.
Sauf, si je soustrais deux time() ensemble et que j'affiche le résultat avec la fonction date(), j'ai un décalage horaire de +1h.
Mais si j'affiche le résultat de la soustraction des deux time(), je n'ai pas de décalage horaire. Mon fuseau horaire lui, est bien configuré.
time() te donne un timestamp, c'est à dire un instant bien précis, qui peut être par exemple le 27 février 2015 9 h 41 min 18 s.
Quand tu soustrais deux timestamps, tu n'obtiens plus une date précise, mais la durée qui s'est écoulée entre les deux instants : ce n'est pas un timestamp.
date() sert à mettre en forme des timestamps, essayer de l'appliquer à des durées n'a tout simplement pas de sens. Dans le cas d'une durée nulle par exemple, date() va te sortir le 1er janvier 1970 0h, 1h, 2h.. selon ton fuseau horaire, ce qui est une absurdité.
Si tu ne veux afficher que des périodes de quelques jours ou quelques heures, tu peux faire le calcul toi-même, il est très simple.
Si tu veux des périodes dépassant le mois, tu ne peux pas le faire avec une différence entre deux time() car la longueur des mois ne fait pas toujours le même nombre de secondes. Tu es obligé d'utiliser difftime en indiquant la date de début et celle de fin.
https://forums.commentcamarche.net/forum/affich-28404633-fonction-time-php#12
Bon courage pour la suite.