Aide - Recherche - Membres - Calendrier
Version complète : Question de dates en PHP ...
CandiULB > Discussions Générales > Autres Discussions > Autres discussions - Le classique
Eriku san
J'suis en train de bûcher depuis déjà quelques jours maintenant sur une fonction que j'aimerais faire, qui modifie une date récupérée via requête Mysql en fonction du fuseau horaire dans lequel la personne se trouve ( récupéré également via requête Mysql ).

Je pense qu'il faut travailler avec le timestamp UNIX d'une date et ensuite enlever ou ajouter le nombre de secondes qu'on veut ... puis ensuite remettre la date au format conventionnel 0000-00-00 00:00:00 ...

Le truc, c'est que ça je sais comment le faire avec une date récupérée via date() ou gmdate() ... mais pas avec une date récupérée via Mysql ...

J'ai déjà fait mes petites inverstigations pour ce faire, mais sans succès ... donc si quelqu'un pouvait m'aider, ce serait très apprécié biggrin.gif

Merci d'avance à quiconque me répondra !
BK-3k
A ma connaissance (et celle d'un copain également), impossible de connaitre le fuseau horaire un visiteur.

Mais si quelqu'un trouve, j'en serais également heureux.
Eriku san
Dans mon cas, le fuseau horaire est donné par l'utilisateur !

c'est pour un forum de discussion en fait wink.gif
les utilisateurs sont inscrits .. et ont la possibilité d'indiquer leur fuseau horaire !

Ainsi les données seraient traitées de manière à afficher les dates des derniers posts en fonction de l'endroit où ils se trouvent wink.gif

Voila voila ^^

Par contre, pour récupérer le fuseau horaire ... c'est assez simple ^^ Suffit d'utiliser gmdate() et date() ^^

$gmt = gmdate("H");
$heurechezlegars = date("H");

$fuseau = $heurechezlegars - $gmt ;
Enfin .. faut un peu fignoler mais c'est l'idée quoi wink.gif

C'est comme ça que j'ai fait en tout cas wink.gif
benoua
il suffit d'utiliser la fonction mysql

Code
SELECT UNIX_TIMESTAMP(colonne_du_temps_dans_ton_tableau) FROM ton_tableau;
BK-3k
Eriku san > Il est possible facilement d'obtenir l'heure du serveur, mais pour l'heure du visiteur, j'ai un très gros doute !!!
benoua
BK-3K: l'heure de l'utilisateur est récupérable facilement en JavaScript, il suffit de la passer en variable GET par un champ caché d'un formulaire. Si il n'y en a pas sur la page, on peut même le faire en caché avec un "onclick='form.submit()'"

Si ça se passe lors d'une inscription, bah il y a forcément un formulaire donc c'est encore plus facile. Le calcul du fuseau horaire peut aussi lui-même se faire dans la machine de l'utilisateur en JavaScript :
Code
x = new Date();

currentTimeZoneOffsetInHours = x.getTimezoneOffset()/60;

    // non tu n'es pas obligé d'utiliser un nom de variable aussi long =)

form1.fuseau.value = currentTimeZoneOffsetInHours;

Avec bien sûr un champ "fuseau" avec l'attribut "hidden" dans ton formulaire (appelé "form1" ici) et la fonction JavaScript appelée dans onSubmit() de ce formulaire.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2012 Invision Power Services, Inc.