Fonction date() et fuseau horaire

Résolu/Fermé
Utilisateur anonyme - 27 févr. 2015 à 09:36
 Utilisateur anonyme - 1 mars 2015 à 01:07
Bonjour,

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é.


Cordialement,
A voir également:

1 réponse

Bonjour

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.
1
Utilisateur anonyme
27 févr. 2015 à 23:44
Tu n'as pas fait beaucoup de progrès depuis 2013 :
https://forums.commentcamarche.net/forum/affich-28404633-fonction-time-php#12
0
Utilisateur anonyme
28 févr. 2015 à 22:20
Ouais je viens de voir que ce problème me suis depuis longtemps.. Je suis désolé d'avoir fait un double poste pour rien.
0
Utilisateur anonyme > Utilisateur anonyme
1 mars 2015 à 01:07
Pas grave, mais ça m'a beaucoup amusé de retomber sur ce message par hasard.
Bon courage pour la suite.
0