J'ai un petit soucis, à savoir que pour un site sur lequel je travaille,
l'horodatage est *très important* et le serveur de dev et le serveru de
prod ne sont pas au même endroit (l'un en france, l'autre aux US).
Forcémment, quand je passe le site "fonctionnel" en prod, je me prend 6h
dans la vue.
Je voudrais éviter de reprendre toutes mes fonctions date() pour leur
rajouter 6h, y'a t'il un moyen de dire à mes scripts que je veux qu'il
compte le décalage horaire en plus?
Merci d'avance
--
Découvrez Original War: http://www.original-war.org
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.crazy-irc.net
Je voudrais éviter de reprendre toutes mes fonctions date() pour leur rajouter 6h, y'a t'il un moyen de dire à mes scripts que je veux qu'il compte le décalage horaire en plus?
Sans rien changer du tout à tes scripts, je ne vois pas. À moins bien sûr de changer le fuseau horaire de l'une des deux machines.
Mais sinon, tu peux remplacer tous tes appels à date() par des appels à gmdate().
Soit dit en passant, il y a une coquille dans la doc de la fonction date (ici en français mais il y a la même en anglais) :
<cit. http://fr2.php.net/manual/fr/function.date.php> O Différence d'heures avec l'heure de Greenwich (GMT), exprimée en heures Exemple : +0200 </cit.>
Si elle n'était exprimée qu'en heures, ce serait +2 (resp. +2.5) alors qu'en fait elle est exprimée en heures et minutes : +0200 (resp. +0230).
-- Olivier Miakinen Non, monsieur le juge, je vous le jure : jamais je n'ai cité Bruxelles dans ma signature.
Je voudrais éviter de reprendre toutes mes fonctions date() pour leur
rajouter 6h, y'a t'il un moyen de dire à mes scripts que je veux qu'il
compte le décalage horaire en plus?
Sans rien changer du tout à tes scripts, je ne vois pas. À moins bien
sûr de changer le fuseau horaire de l'une des deux machines.
Mais sinon, tu peux remplacer tous tes appels à date() par des appels à
gmdate().
Soit dit en passant, il y a une coquille dans la doc de la fonction date
(ici en français mais il y a la même en anglais) :
<cit. http://fr2.php.net/manual/fr/function.date.php>
O Différence d'heures avec l'heure de Greenwich (GMT), exprimée en
heures Exemple : +0200
</cit.>
Si elle n'était exprimée qu'en heures, ce serait +2 (resp. +2.5) alors
qu'en fait elle est exprimée en heures et minutes : +0200 (resp. +0230).
--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.
Je voudrais éviter de reprendre toutes mes fonctions date() pour leur rajouter 6h, y'a t'il un moyen de dire à mes scripts que je veux qu'il compte le décalage horaire en plus?
Sans rien changer du tout à tes scripts, je ne vois pas. À moins bien sûr de changer le fuseau horaire de l'une des deux machines.
Mais sinon, tu peux remplacer tous tes appels à date() par des appels à gmdate().
Soit dit en passant, il y a une coquille dans la doc de la fonction date (ici en français mais il y a la même en anglais) :
<cit. http://fr2.php.net/manual/fr/function.date.php> O Différence d'heures avec l'heure de Greenwich (GMT), exprimée en heures Exemple : +0200 </cit.>
Si elle n'était exprimée qu'en heures, ce serait +2 (resp. +2.5) alors qu'en fait elle est exprimée en heures et minutes : +0200 (resp. +0230).
-- Olivier Miakinen Non, monsieur le juge, je vous le jure : jamais je n'ai cité Bruxelles dans ma signature.
John GALLET
Re,
J'ai un petit soucis, à savoir que pour un site sur lequel je travaille, l'horodatage est *très important* Soit. Mais qu'est-ce qui est important ? Retrouver la chronologie des
événements (ou d'un ensemble cohérent d'événements) ou déclencher une action à une heure précise ?
et le serveur de dev et le serveur de prod ne sont pas au même endroit (l'un en france, l'autre aux US). Nécessairement (...) e dev se fiche de la prod et réciproquement. Donc on
se fout complètement qu'ils aient des heures machine différentes.
Forcémment, quand je passe le site "fonctionnel" en prod, je me prend 6h dans la vue. Oui et ? C'est l'heure locale, donc tout va bien.
Je voudrais éviter de reprendre toutes mes fonctions date() pour leur rajouter 6h, y'a t'il un moyen de dire à mes scripts que je veux qu'il compte le décalage horaire en plus? Je ne comprends pas le besoin. Si tu as la bonne heure sur le serveur US,
il n'y a pas de problèmes. Si tu traces une chronologie d'événements, peu importe qu'elle ait lieu à 6 heures de décalage. Si tu déclenches des événements à des heures précises, prie Sainte Crontab avec le décalage "kivabien".
Maintenant pour répondre à ta question même si je ne la comprends pas complètement, j'ai souvenir d'une variable de derrière les fagots, genre putenv() de PHP_TIMEZONE ou PHP_TZ un truc du genre. Mais j'avais peut-être encore abusé de la Guinness.
a++; JG
Re,
J'ai un petit soucis, à savoir que pour un site sur lequel je travaille,
l'horodatage est *très important*
Soit. Mais qu'est-ce qui est important ? Retrouver la chronologie des
événements (ou d'un ensemble cohérent d'événements) ou déclencher une
action à une heure précise ?
et le serveur de dev et le serveur de
prod ne sont pas au même endroit (l'un en france, l'autre aux US).
Nécessairement (...) e dev se fiche de la prod et réciproquement. Donc on
se fout complètement qu'ils aient des heures machine différentes.
Forcémment, quand je passe le site "fonctionnel" en prod, je me prend 6h
dans la vue.
Oui et ? C'est l'heure locale, donc tout va bien.
Je voudrais éviter de reprendre toutes mes fonctions date() pour leur
rajouter 6h, y'a t'il un moyen de dire à mes scripts que je veux qu'il
compte le décalage horaire en plus?
Je ne comprends pas le besoin. Si tu as la bonne heure sur le serveur US,
il n'y a pas de problèmes. Si tu traces une chronologie d'événements, peu
importe qu'elle ait lieu à 6 heures de décalage. Si tu déclenches des
événements à des heures précises, prie Sainte Crontab avec le décalage
"kivabien".
Maintenant pour répondre à ta question même si je ne la comprends pas
complètement, j'ai souvenir d'une variable de derrière les fagots, genre
putenv() de PHP_TIMEZONE ou PHP_TZ un truc du genre. Mais j'avais
peut-être encore abusé de la Guinness.
J'ai un petit soucis, à savoir que pour un site sur lequel je travaille, l'horodatage est *très important* Soit. Mais qu'est-ce qui est important ? Retrouver la chronologie des
événements (ou d'un ensemble cohérent d'événements) ou déclencher une action à une heure précise ?
et le serveur de dev et le serveur de prod ne sont pas au même endroit (l'un en france, l'autre aux US). Nécessairement (...) e dev se fiche de la prod et réciproquement. Donc on
se fout complètement qu'ils aient des heures machine différentes.
Forcémment, quand je passe le site "fonctionnel" en prod, je me prend 6h dans la vue. Oui et ? C'est l'heure locale, donc tout va bien.
Je voudrais éviter de reprendre toutes mes fonctions date() pour leur rajouter 6h, y'a t'il un moyen de dire à mes scripts que je veux qu'il compte le décalage horaire en plus? Je ne comprends pas le besoin. Si tu as la bonne heure sur le serveur US,
il n'y a pas de problèmes. Si tu traces une chronologie d'événements, peu importe qu'elle ait lieu à 6 heures de décalage. Si tu déclenches des événements à des heures précises, prie Sainte Crontab avec le décalage "kivabien".
Maintenant pour répondre à ta question même si je ne la comprends pas complètement, j'ai souvenir d'une variable de derrière les fagots, genre putenv() de PHP_TIMEZONE ou PHP_TZ un truc du genre. Mais j'avais peut-être encore abusé de la Guinness.
a++; JG
boiteauxlettres
salut,
j'ai eu ce souci moi aussi, et j'ai trouvé sur google (merci google) une solution utilisant php et javascript :
en gros, une info postée à 16h00 GMT+1 (heure serveur de la bdd) doit apparaitre comme ayant ete postee a 10h00 par qqun surfant sur la cote est des états-unis GMT-5 (je pense) ou GMT+7 pour un australien (je pense)
l'idée c'est d'utiliser un cookie créé par javascript qui récupère la timezone du client. php lit ensuite ce cookie et rajoute cette valeur à time()
voila =) en esperant que ca t'aide. en ce qui me concerne ca marche nickel, et c'est assez simple a mettre en place.
++
salut,
j'ai eu ce souci moi aussi, et j'ai trouvé sur google (merci google)
une solution utilisant php et javascript :
en gros, une info postée à 16h00 GMT+1 (heure serveur de la bdd) doit
apparaitre comme ayant ete postee a 10h00 par qqun surfant sur la cote
est des états-unis GMT-5 (je pense) ou GMT+7 pour un australien (je
pense)
l'idée c'est d'utiliser un cookie créé par javascript qui récupère
la timezone du client. php lit ensuite ce cookie et rajoute cette
valeur à time()
voila =) en esperant que ca t'aide. en ce qui me concerne ca marche
nickel, et c'est assez simple a mettre en place.
en gros, une info postée à 16h00 GMT+1 (heure serveur de la bdd) doit apparaitre comme ayant ete postee a 10h00 par qqun surfant sur la cote est des états-unis GMT-5 (je pense) ou GMT+7 pour un australien (je pense)
l'idée c'est d'utiliser un cookie créé par javascript qui récupère la timezone du client. php lit ensuite ce cookie et rajoute cette valeur à time()
voila =) en esperant que ca t'aide. en ce qui me concerne ca marche nickel, et c'est assez simple a mettre en place.
++
Guillaume Bouchard
wrote:
j'ai eu ce souci moi aussi, et j'ai trouvé sur google (merci google) une solution utilisant php et javascript :
Ha. Ce que tu dis est infiniement pire que de confondre les d-ronds et les d-droits ! (J'ai toujours pas comprit pourquoi c'est grave, mais mes profs ont comprits et cela coute 10 pts...)
Bref, il ne faut JAMAIS, JAMAIS, JAMAIS (j'ai dis JAMAIS ?) utiliser une technologie client pour quoi que ce soit qui ne soit autre que le confort et l'experience utilisateur(tm)(c)(r) du client.
-- Guillaume.
boiteauxlettres@gmail.com wrote:
j'ai eu ce souci moi aussi, et j'ai trouvé sur google (merci google)
une solution utilisant php et javascript :
Ha. Ce que tu dis est infiniement pire que de confondre les d-ronds et
les d-droits ! (J'ai toujours pas comprit pourquoi c'est grave, mais mes
profs ont comprits et cela coute 10 pts...)
Bref, il ne faut JAMAIS, JAMAIS, JAMAIS (j'ai dis JAMAIS ?) utiliser une
technologie client pour quoi que ce soit qui ne soit autre que le
confort et l'experience utilisateur(tm)(c)(r) du client.
j'ai eu ce souci moi aussi, et j'ai trouvé sur google (merci google) une solution utilisant php et javascript :
Ha. Ce que tu dis est infiniement pire que de confondre les d-ronds et les d-droits ! (J'ai toujours pas comprit pourquoi c'est grave, mais mes profs ont comprits et cela coute 10 pts...)
Bref, il ne faut JAMAIS, JAMAIS, JAMAIS (j'ai dis JAMAIS ?) utiliser une technologie client pour quoi que ce soit qui ne soit autre que le confort et l'experience utilisateur(tm)(c)(r) du client.
-- Guillaume.
Thibaut Allender
Maintenant pour répondre à ta question même si je ne la comprends pas complètement, j'ai souvenir d'une variable de derrière les fagots, genre putenv() de PHP_TIMEZONE ou PHP_TZ un truc du genre. Mais j'avais peut-être encore abusé de la Guinness.
Maintenant pour répondre à ta question même si je ne la comprends pas
complètement, j'ai souvenir d'une variable de derrière les fagots, genre
putenv() de PHP_TIMEZONE ou PHP_TZ un truc du genre. Mais j'avais
peut-être encore abusé de la Guinness.
Maintenant pour répondre à ta question même si je ne la comprends pas complètement, j'ai souvenir d'une variable de derrière les fagots, genre putenv() de PHP_TIMEZONE ou PHP_TZ un truc du genre. Mais j'avais peut-être encore abusé de la Guinness.
Tout à fait, merci de votre aide, il s'agit bien de: putenv("TZ=Europe/Paris");
Si vous voulez la liste des paramètres utilisables, c'est à <http://www.theprojects.org/dev/zone.txt>
Pour répondre à John: j'ai besoin de l'heure exacte et française à laquelle se passe une opération, voila pourquoi je dois avoir le bon décalage.
-- Découvrez Original War: http://www.original-war.org Humour: http://www.chatfou.com Tchattez en liberté: http://www.crazy-irc.net
Daniel Dupont
J'ai un petit soucis, à savoir que pour un site sur lequel je travaille, l'horodatage est *très important* et le serveur de dev et le serveru de prod ne sont pas au même endroit (l'un en france, l'autre aux US).
Forcémment, quand je passe le site "fonctionnel" en prod, je me prend 6h dans la vue.
Je voudrais éviter de reprendre toutes mes fonctions date() pour leur rajouter 6h, y'a t'il un moyen de dire à mes scripts que je veux qu'il compte le décalage horaire en plus?
Ceci ne s'appliquera sans doute pas ici, mais d'une manière générale, dans le cas d'applications utilisables sur plusieurs fuseaux horaires, ne serait-il pas plus judicieux de stocker les dates (et les heures) en GMT ? Ainsi, quel que soit le fuseau horaire du serveur on a la même référence.
Bien entendu, à l'exploitation (affichage notamment) de ces informations, il faudra tenir compte du fuseau horaire pour lequel on veut afficher ces données.
A+
-- Daniel Dupont
J'ai un petit soucis, à savoir que pour un site sur lequel je travaille,
l'horodatage est *très important* et le serveur de dev et le serveru de
prod ne sont pas au même endroit (l'un en france, l'autre aux US).
Forcémment, quand je passe le site "fonctionnel" en prod, je me prend 6h
dans la vue.
Je voudrais éviter de reprendre toutes mes fonctions date() pour leur
rajouter 6h, y'a t'il un moyen de dire à mes scripts que je veux qu'il
compte le décalage horaire en plus?
Ceci ne s'appliquera sans doute pas ici, mais d'une manière générale,
dans le cas d'applications utilisables sur plusieurs fuseaux horaires,
ne serait-il pas plus judicieux de stocker les dates (et les heures) en
GMT ? Ainsi, quel que soit le fuseau horaire du serveur on a la même
référence.
Bien entendu, à l'exploitation (affichage notamment) de ces
informations, il faudra tenir compte du fuseau horaire pour lequel on
veut afficher ces données.
J'ai un petit soucis, à savoir que pour un site sur lequel je travaille, l'horodatage est *très important* et le serveur de dev et le serveru de prod ne sont pas au même endroit (l'un en france, l'autre aux US).
Forcémment, quand je passe le site "fonctionnel" en prod, je me prend 6h dans la vue.
Je voudrais éviter de reprendre toutes mes fonctions date() pour leur rajouter 6h, y'a t'il un moyen de dire à mes scripts que je veux qu'il compte le décalage horaire en plus?
Ceci ne s'appliquera sans doute pas ici, mais d'une manière générale, dans le cas d'applications utilisables sur plusieurs fuseaux horaires, ne serait-il pas plus judicieux de stocker les dates (et les heures) en GMT ? Ainsi, quel que soit le fuseau horaire du serveur on a la même référence.
Bien entendu, à l'exploitation (affichage notamment) de ces informations, il faudra tenir compte du fuseau horaire pour lequel on veut afficher ces données.
A+
-- Daniel Dupont
boiteauxlettres
et comment ferais tu alors ?
tu as une date francaise dans une bdd qui doit etre convertie en date us, australienne, japonaise, etc..
il est hors de question que je dise aux visiteurs "faites la difference vous meme" ;-) j'ai bien tente de recuperer la timezone via les en-tetes http mais soit ca n'existe pas soit je ne trouve pas. et d'ailleurs j'ai dans mes souvenirs (flous sans doute) que si la timezone peut effectivement etre envoye dans les headers http, ce n'est pas toujours le cas.
j'ai regarde putenv(), mais la encore, il faut savoir de quel pays vient le visiteur... on peut se baser sur l'ip egalement, mais c'est pas la meilleure solution non plus
je suis curieux de lire ta reponse a ce propos
++
et comment ferais tu alors ?
tu as une date francaise dans une bdd qui doit etre convertie en date
us, australienne, japonaise, etc..
il est hors de question que je dise aux visiteurs "faites la difference
vous meme" ;-) j'ai bien tente de recuperer la timezone via les
en-tetes http mais soit ca n'existe pas soit je ne trouve pas. et
d'ailleurs j'ai dans mes souvenirs (flous sans doute) que si la
timezone peut effectivement etre envoye dans les headers http, ce n'est
pas toujours le cas.
j'ai regarde putenv(), mais la encore, il faut savoir de quel pays
vient le visiteur... on peut se baser sur l'ip egalement, mais c'est
pas la meilleure solution non plus
tu as une date francaise dans une bdd qui doit etre convertie en date us, australienne, japonaise, etc..
il est hors de question que je dise aux visiteurs "faites la difference vous meme" ;-) j'ai bien tente de recuperer la timezone via les en-tetes http mais soit ca n'existe pas soit je ne trouve pas. et d'ailleurs j'ai dans mes souvenirs (flous sans doute) que si la timezone peut effectivement etre envoye dans les headers http, ce n'est pas toujours le cas.
j'ai regarde putenv(), mais la encore, il faut savoir de quel pays vient le visiteur... on peut se baser sur l'ip egalement, mais c'est pas la meilleure solution non plus
je suis curieux de lire ta reponse a ce propos
++
John GALLET
ça serait pas un truc genre putenv('TZ=EST') ? TZ existe ça c'est clair, mais il me semblait avoir utilisé PHP_TZ.
Un find -exec grep dans les sources ne me donne rien, mais d'une part je n'ai pas nécessairement fait la bonne recherche, d'autre part, une recherche sur PHP_TZ dans google donne bien des résultats.
Ca existe, mais alors quant à savoir la différence avec TZ...
a++; JG
ça serait pas un truc genre putenv('TZ=EST') ?
TZ existe ça c'est clair, mais il me semblait avoir utilisé PHP_TZ.
Un find -exec grep dans les sources ne me donne rien, mais d'une part je
n'ai pas nécessairement fait la bonne recherche, d'autre part, une
recherche sur PHP_TZ dans google donne bien des résultats.
Ca existe, mais alors quant à savoir la différence avec TZ...
ça serait pas un truc genre putenv('TZ=EST') ? TZ existe ça c'est clair, mais il me semblait avoir utilisé PHP_TZ.
Un find -exec grep dans les sources ne me donne rien, mais d'une part je n'ai pas nécessairement fait la bonne recherche, d'autre part, une recherche sur PHP_TZ dans google donne bien des résultats.
Ca existe, mais alors quant à savoir la différence avec TZ...
a++; JG
ftc
et comment ferais tu alors ?
tu as une date francaise dans une bdd qui doit etre convertie en date us, australienne, japonaise, etc..
il est hors de question que je dise aux visiteurs "faites la difference vous meme" ;-) j'ai bien tente de recuperer la timezone via les en-tetes http mais soit ca n'existe pas soit je ne trouve pas. et d'ailleurs j'ai dans mes souvenirs (flous sans doute) que si la timezone peut effectivement etre envoye dans les headers http, ce n'est pas toujours le cas.
C'est pour cela qu'il faut stocker dans la BDD en GMT et ensuite utiliser Javascript coté client pour faire le calcul pour l'affichage.
et comment ferais tu alors ?
tu as une date francaise dans une bdd qui doit etre convertie en date
us, australienne, japonaise, etc..
il est hors de question que je dise aux visiteurs "faites la difference
vous meme" ;-) j'ai bien tente de recuperer la timezone via les
en-tetes http mais soit ca n'existe pas soit je ne trouve pas. et
d'ailleurs j'ai dans mes souvenirs (flous sans doute) que si la
timezone peut effectivement etre envoye dans les headers http, ce n'est
pas toujours le cas.
C'est pour cela qu'il faut stocker dans la BDD en GMT et ensuite
utiliser Javascript coté client pour faire le calcul pour l'affichage.
tu as une date francaise dans une bdd qui doit etre convertie en date us, australienne, japonaise, etc..
il est hors de question que je dise aux visiteurs "faites la difference vous meme" ;-) j'ai bien tente de recuperer la timezone via les en-tetes http mais soit ca n'existe pas soit je ne trouve pas. et d'ailleurs j'ai dans mes souvenirs (flous sans doute) que si la timezone peut effectivement etre envoye dans les headers http, ce n'est pas toujours le cas.
C'est pour cela qu'il faut stocker dans la BDD en GMT et ensuite utiliser Javascript coté client pour faire le calcul pour l'affichage.