Je rencontre un problème stupide que je ne peux pas comprendre. Comment se fait-ce morceau de code suivant:PHP - bizarre décalage de fuseau horaire
public function getFormattedOffsetFrom($refTimezoneId = 'Europe/Paris', $format = 'G\hi') {
$timestamp = time();
$reference = new DateTime('@'.$timestamp);
$referenceTimeZone = new DateTimeZone($refTimezoneId);
$reference->setTimezone($referenceTimeZone);
$datetime = new DateTime('@'.$timestamp);
$datetime->setTimezone($this->timezone);
$offset = $this->timezone->getOffset($datetime) - $referenceTimeZone->getOffset($reference);
$prefix = '+';
if($offset < 0) {
$prefix = '-';
$offset = abs($offset);
}
return $prefix.date($format, $offset);
}
où $ this-> fuseau horaire est une instance de DateTimeZone positionné en Europe/Madrid, produit + 1h00 lorsqu'aucun args sont spécifiés ????
Paris et Madrid n'ont pas de décalage horaire. Je ne comprends pas.
Merci beaucoup pour votre aide !!!! Florent
ahh, vous comparez Paris * contre * Madrid, désolé, je n'ai pas compris. Pouvez-vous produire les compensations brutes pour voir ce qui ne va pas? Il peut s'agir d'une erreur à l'intérieur de la fonction –
, le décalage devrait être 0 :) – Rolf
Je pense que vous devrez déboguer la fonction et voir où ça va mal ... –