Fonction date() et décalage horaire [Résolu]

pouchteck 3 Messages postés samedi 10 octobre 2009Date d'inscription 23 novembre 2009 Dernière intervention - 22 nov. 2009 à 18:10 - Dernière réponse : TychoBrahe 1310 Messages postés samedi 31 janvier 2009Date d'inscription 5 juin 2013 Dernière intervention
- 23 nov. 2009 à 19:09
Bonjour,
Je suis en train de programmer une partie commentaires en PHP pour mon site, et je voudrais afficher la date et l'heure de post, avec la fonction date.

Seulement voilà, l'heure enregistrée avance de exactement 23 minutes par rapport à mon heure système, et je suis pourtant à l'heure !
Je vous copie des extraits de mon code.

Enregistrement de la date/heure dans ma base de données à la validation du formulaire :

<?php 
$date = date('d/m/Y');
$heure = date('H:i:s');
mysql_query("INSERT INTO table VALUES('','$date','$heure')");
?>


Affichage de la date/heure en dessous du commentaire :

Posté le <?php echo $donnees['Date']; ?> à <?php echo $donnees['Heure']; ?>.



PS: ajouter un "date_default_timezone_set(Europe/Paris);" n'a rien donné.
Peu-être vais-je tout simplement soustraire 23 minutes à l'heure avant enregistrement...
Si c'est la seule solution, pourriez-vous m'expliquer comment procéder?

Merci d'avance pour toutes vos réponses.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
cyrhades 23 Messages postés samedi 21 novembre 2009Date d'inscription 22 juillet 2010 Dernière intervention - 22 nov. 2009 à 20:43
3
Merci
Il serait stupide de modifier l'heure plutot que résoudre le réel probleme.
Tout d'abord ton script se trouve bien en local ?
Ta bdd est en local aussi ?
pour resoudre le pb tu tenter un time() en sql lors de l'enregistrement plutot que de recup l'heure en php.
Etrange si Apache est en local qu'il ne parvienne pas a récupérer correctement l'heure ...

Merci cyrhades 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de cyrhades
Meilleure réponse
TychoBrahe 1310 Messages postés samedi 31 janvier 2009Date d'inscription 5 juin 2013 Dernière intervention - 23 nov. 2009 à 18:51
3
Merci
Salut,

Peut-on interposer du texte entre la date et l'heure quand on récupère le contenu d'un champ de type DATETIME ?

Oui, MySQL met à ta disposition plein de fonction de manipulation des dates et des chaînes de caractères. Voici un exemple, ici une simple spécification du format dans lequel on veux la date est suffisant :
mysql> SELECT DATE_FORMAT(NOW(), 'Posté le %e/%m/%Y à %T');
+----------------------------------------------+
| DATE_FORMAT(NOW(), 'Posté le %e/%m/%Y à %T') |
+----------------------------------------------+
| Posté le 23/11/2009 à 18:46:09               |
+----------------------------------------------+
1 row in set (0.00 sec)


Je te recommande la lecture de la documentations MySQL :
Fonctions de dates et d'heures
Fonctions de chaînes de caractères


PS : Désolé de devoir mettre ma commande dans la balise prévue pour du code PHP, pour un bon affichage il faut une police à chasse fixe et le code de type "autre" est foireux.

Merci TychoBrahe 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de TychoBrahe
TychoBrahe 1310 Messages postés samedi 31 janvier 2009Date d'inscription 5 juin 2013 Dernière intervention - 22 nov. 2009 à 20:51
0
Merci
Salut,

Juste comme ça, plutôt que de t'embêter a faire la date avec PHP tu peux utiliser NOW() ou similaire dans ta requête SQL. ET au passage je ne vois pas pourquoi tu as mis la date et l'heure dans deux champs séparés, les champs DATETIME existent.
Commenter la réponse de TychoBrahe
pouchteck 3 Messages postés samedi 10 octobre 2009Date d'inscription 23 novembre 2009 Dernière intervention - 23 nov. 2009 à 15:32
0
Merci
Bonjour,

J'avais essayé de modifier mon code sans le tester en local(je sais, c'est pas bien...),et en local ça marche.c'est donc dû à la localisation du serveur, ou quoi...?

Peut-on interposer du texte entre la date et l'heure quand on récupère le contenu d'un champ de type DATETIME ?
Parce que je voudrais quelque chose du genre
"Posté le jj/mm/aaaa à hh:mm:ss".

Voilà, en tout cas merci à vous pour vos indications.
Commenter la réponse de pouchteck
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 23 nov. 2009 à 18:54
0
Merci
Salut,

c'est donc dû à la localisation du serveur, ou quoi...?

Je ne pense pas, ça ressemble plutôt à une heure non mise à jour (parait bizarre mais bon)
Qu'en est il si tu utilises NOW() dans la requête SQL, comme suggéré par TychoBrahe ?

Peut-on interposer du texte entre la date et l'heure quand on récupère le contenu d'un champ de type DATETIME ?

Oui, en utilisant DATE_FORMAT() (cf doc mySQL)


Cordialement,

Kohntark -
Commenter la réponse de kohntark
cyrhades 23 Messages postés samedi 21 novembre 2009Date d'inscription 22 juillet 2010 Dernière intervention - 23 nov. 2009 à 18:56
0
Merci
Salut
c'est pas exactement un problême de localisation ca les fuseau horaire son de 1heure de décalage si tu a 23 minutes c'est que le serveur n'est pas a l'heure si c'est un hebergeur n'hésite pas a le contacter pour l'informer.
Pour intercaler du texte c'est out simple un DATETIME a un format tres precis
YYYY/MM/DD HH:II:SS
pour mettre dans le format : jj/mm/aaaa à hh:mm:ss
$datetime = 'YYYY/MM/DD HH:II:SS';
// on eclate la chaine a l'espace ce qui separe la date de l'heure
$date_heure = explode(" ",$datetime);
$heure = $date_heure[1];
// on eclate la date_heure[0] (donc la date seule) 
// sur le caractere /
$date = explode("/",$date_heure[0]);
// on replace dans l'ordre voulu
$date = $date[2] . '/' .$date[1] . '/' $date[0];
// on affiche
echo $date .' à '.$heure;

le resultat :
DD/MM/YYYY à HH:II:SS
tu peux egalement explode la date sur le caractere : si tu veux par exemple retirer les secondes.
Il existe certainement des fonctions pour te faire ça proprement au pire tu la crée ;-) c'est pas bien difficile est un tres bon exercice pour un debutant.
Commenter la réponse de cyrhades
kohntark 3708 Messages postés lundi 5 juillet 2004Date d'inscription 27 avril 2012 Dernière intervention - 23 nov. 2009 à 18:57
0
Merci
grillé par TychoBrahe.


Cordialement,


Kohntark -
Commenter la réponse de kohntark
TychoBrahe 1310 Messages postés samedi 31 janvier 2009Date d'inscription 5 juin 2013 Dernière intervention - 23 nov. 2009 à 19:09
0
Merci
Salut,

@cyrhades : heu, pourquoi s'embêter avec PHP quand MySQL sait si bien le faire tout seul ? Je ne connais que les Shadoks qui feraient cela...
Commenter la réponse de TychoBrahe

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.