Bonjour,
J'ai un probleme, et non une erreur en utilisant la fonction "NOW()", en faite, l'heure et decaler de deux heure :/ ! Du style la il est 18:03:37, dans la table, il y aura écrit : 16:03:37 !
http://prntscr.com/879w0c
Une idée ? J'avais penser a un décalage horaire.

9 réponses


Abdi Farah
Auteur
Réponse acceptée

Pour toutes personnes qui tombera sur ce probleme par la suite, j'ai trouve un topic qui date de 2010 sur OCR ^^' https://openclassrooms.com/forum/sujet/php-decalage-horaire-avec-la-fonction-date-65424

Bonjour,
il faut changer ta timezone php ou ajouter les heures manuellement. Il te donne l'heure pour le fuseau horaire GMT hors nous somme a GMT +1 et si on ajoute l'heure d'été ça donne les deux heure que tu a remarqué

Comment faire cela, car j'y avait penser, donc chercher sur google, mais j'ai rien trouver :|
Sachant que j'ai déjà sa dans mon fichier config :

// setlocale(LC_TIME, 'fr_FR.UTF8');
// setlocale(LC_TIME, 'fr_FR');
// setlocale(LC_TIME, 'fr');
setlocale(LC_TIME, 'fra_fra');

<?php
date_default_timezone_set('Europe/Paris');
?>

Tu peux retrouver la liste des fuseaux horaires disponibles ici

Si tu veux le faire d'une maniere globale, va dans ton php.ini et met

date.timezone = "Europe/Paris"

Comme je l'ai dit au dessus, j'avais un code de ce genre, mais même le votre ne fonctionne pas :/

Sinon tu peux toujours ajouter les heures manuellement.

Comment ça ? Mais en faite avec ça, j'enrengistre les visiteurs qui passe sur le site et donc il me faudrait, la date en ce momment !

Je vois ce que vous voulez dire enfaite ;) !

<?php
echo date('Y-m-d H:i:s');  // 2012-10-11 15:35:53
echo date('l j F Y, H:i'); // Thursday 11 October 2012, 15:35
echo date('d F Y');        // 11 October 2012
echo date('d/m/Y');        // 11/10/12
?>

EDIT : Même avec un echo cela m'affiche : http://prntscr.com/87a9n3

<?php
$now = new DateTime();
$hours = date_interval_create_from_date_string('2 hour');
$now->add($hours);
echo $now;