Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/05/2011, 23h38   #1
Membre régulier
 
Inscription : juillet 2002
Messages : 273
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juillet 2002
Messages : 273
Points : 93
Points : 93
Par défaut Résultat de conversion d'un timestamp en date différent entre Windows et Linux

Bonjour / Bonsoir,
Je viens de passer pas mal de temps sur un souci assez genant = la traduction d'un timestamp en date donne des résultats différents entre Windows et Linux ...

Voici un exemple de code:
Code :
1
2
3
4
5
 
<?php
$start = 1306447200000 / 1000;
echo date("Y-m-d H:i:s", $start);
?>
Sous Linux, j'obtiens :
2011-05-27 00:00:00

Alors que sous windows, j'obtiens :
2011-05-26 22:00:00

J'ai fait le test avec plusieurs valeurs et j'ai toujours un décalage de deux heures ...

De ce que j'ai vu les machines sont sur le même fuseau horaire ...
maitrebn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2011, 09h43   #2
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 568
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 568
Points : 2 493
Points : 2 493
Bonjour,

On dirait quand même qu'il y a un décalage de timezone.

Pour être sûr, tu pourrais en faire un echo et comparer sur les 2 serveurs ?
Code php :
1
2
3
<?php
echo date_default_timezone_get();
?>
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2011, 10h04   #3
Membre régulier
 
Inscription : juillet 2002
Messages : 273
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juillet 2002
Messages : 273
Points : 93
Points : 93
Alors la machine Linux répond : Europe/Berlin
Et la machine Windows répond : UTC

Dans le doute, j'ai été regardé dans les paramètres des deux machines :
* Linux (Ubuntu) : Régler sur Paris,
* Windows (W7) : Régler sur Bruxelles, Copenhage, Paris (UTC + 1).

Ce qui est bizarre c'est que le timestamp est issu d'un getTime() en javascript du navigateur. J'ai fait le test sur les différentes machines (Linux et Ubuntu) et pour une même date/heure j'obtiens toujours les même timestamp ...
maitrebn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2011, 10h47   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Ajoute
Code :
date_default_timezone_set('Europe/Paris');
(ou configure le dans ton php.ini)
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2011, 14h15   #5
Membre régulier
 
Inscription : juillet 2002
Messages : 273
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : juillet 2002
Messages : 273
Points : 93
Points : 93
Merci effectivement cela résout le souci. Je passe donc la fiche en résolue.

Par contre cela risque de me poser un souci un jour si quelqu'un utilise l'application depuis une machine sur un fuseau différent du serveur (c'est un composant javascript qui donne les timestamp ...).

Merci de votre aide.
maitrebn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2011, 15h18   #6
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Comme tu l'as remarqué, le timestamp ne change pas en fonction du fuseau.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h14.


 
 
 
 
Partenaires

Hébergement Web