OVH Cloud OVH Cloud

bug ou erreur: fonction STRFTIME()

4 réponses
Avatar
Manu
Hello,

Voici le code:

$temps = 60;
$h_m_s = strftime("%H:%M:%S", $temps);
echo "Temps = $h_m_s";
//ou
echo "Temps = ".$h_m_s;

Cela me donne : 01:01:00 ????

Pourriez-vous m'expliquer ???

Merci d'avance,
Emmanuel

4 réponses

Avatar
Julien CROUZET aka c2c
Manu avait écrit le 27/02/2004 :
Hello,

Voici le code:

$temps = 60;
$h_m_s = strftime("%H:%M:%S", $temps);
echo "Temps = $h_m_s";
//ou
echo "Temps = ".$h_m_s;

Cela me donne : 01:01:00 ????

Pourriez-vous m'expliquer ???

Merci d'avance,
Emmanuel


C'est normal ; strftime te retournes le temps LOCAL,
tu es en france, donc GMT + 1 en ce moment.

L'unix time part le 1/01/1970 à 00:00 GMT ; il etait donc
01:00 en France.

Donc, 60 secondes apres le 01/01/1970 à 00:00:00 GMT, en france,
il était 01/01/1970 01:01:00 !

--
Julien CROUZET aka c2c
julien_|at|_synten.com

Avatar
Manu
Encore merci......je suis debutant....
Alors juste une petite chose encore,
Pourquoi à ce moment là, si on fait:

$h_m_s = strftime("%H:%M:%S", time() );

On est à la bonne heure alors que vous me dite
qu'il y a decalage GMT+1 ce que je cerne tres bien.???



"Manu" a écrit dans le message de
news:403efb9b$0$24939$
Hello,

Voici le code:

$temps = 60;
$h_m_s = strftime("%H:%M:%S", $temps);
echo "Temps = $h_m_s";
//ou
echo "Temps = ".$h_m_s;

Cela me donne : 01:01:00 ????

Pourriez-vous m'expliquer ???

Merci d'avance,
Emmanuel


Avatar
Olivier Miakinen
Encore merci......je suis debutant....
Alors juste une petite chose encore,
Pourquoi à ce moment là, si on fait:

$h_m_s = strftime("%H:%M:%S", time() );

On est à la bonne heure alors que vous me dite
qu'il y a decalage GMT+1 ce que je cerne tres bien.???


On est à la bonne heure, justement parce que l'heure française tient
compte du décalage. Ou plus exactement parce que le décalage est là pour
s'adapter à l'heure française.

La valeur de time() est un nombre de secondes depuis le 1er janvier 1970
0h 0mn GMT. Ce nombre ne dépend pas du fuseau horaire (timezone). C'est
la fonction strftime() qui fait l'adaptation au fuseau horaire.

Ainsi, si strftime() ne faisait pas ce décalage d'une heure, elle
t'afficherait qu'il est 21h (qui est l'heure en Grande-Bretagne), alors
que pour toi il est 22h (en France).

Au passage, merci de lire ceci :
http://www.giromini.org/usenet-fr/repondre.html

--
Olivier
(ceci est un test)

Avatar
Manu
Ceci dit, à partir de PHP 3 version 3.0.12, les 'fonctions':

- strftime()
- mktime()
- date()

trouvent leur equivalent locale en :

- gmstrftime()
- gmmktime()
- gmdate()
ATTENTION: Il faut vérifier la fonction SetLocale():
[voir la réf.:
http://www.nexen.net/docs/php/annotee/function.setlocale.php ]

Bye, après quelque temps de recherche...
Manu