PHP BUG! probleme avec mktime()

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP BUG! probleme avec mktime()

Re: PHP BUG! probleme avec mktime()

par Berzemus » 01 sept. 2010, 09:02

Quand on ne spécifie pas de jour dans mktime(), il suppose le 31.
C'est pas tout à fait juste en fait, c'est juste qu'hier on était le 31, et que donc mktime() prenait comme valeur par défaut le jour courant, c'est tout à fait logique.

De plus, ce sujet n'a pas sa place dans php avancé.

Voilà, je ne pouvais en dormir la nuit, c'est réparé maintenant.

Re: PHP BUG! probleme avec mktime()

par stealth35 » 31 août 2010, 19:23

MERCI pour la reponse tout est rentré dans l'ordre ... #-o =D> :D J'aurais pu y rester toute la journée merci encore et bonjour de la norvège 8-)
sinon pour faire ce genre de chose c'est avec strtotime :wink:

Re: PHP BUG! probleme avec mktime()

par savagestudio » 31 août 2010, 16:38

MERCI pour la reponse tout est rentré dans l'ordre ... #-o =D> :D J'aurais pu y rester toute la journée merci encore et bonjour de la norvège 8-)

Re: PHP BUG! probleme avec mktime()

par Berzemus » 31 août 2010, 16:27

Bon, il ne faut pas crier trop vite au bug (et c'en est pas un, pour le coup).

Ajoute le paramètre du jour, et le tout rentre dans l'ordre.
$themonth=8;
$prevM = date("M", mktime(0, 0, 0, ($themonth - 1),1 ));
$nextM = date("M", mktime(0, 0, 0, ($themonth + 1),1 ));
echo '$prevM='.$prevM.'
$nextM='.$nextM;
Pour ce qui est du comportement, c'est normal. Quand on ne spécifie pas de jour dans mktime(), il suppose le 31. Or, je te laisse imaginer quelle date donne un timestamp du 31 février..
echo date('c',mktime(0,0,0,2))."\n";
Il fallait juste un peu étudier le comportement de mktime().

PHP BUG! probleme avec mktime()

par savagestudio » 31 août 2010, 16:06

bonjour les amis!
j'ai un probleme avec mktime() voici mon code simplifié:

Code : Tout sélectionner

<?php $themonth=8; $prevM = date("M", mktime(0, 0, 0, ($themonth - 1) )); $nextM = date("M", mktime(0, 0, 0, ($themonth + 1) )); echo '$prevM='.$prevM.'<br />$nextM='.$nextM; ?>
//il echo :
// $prevM=Jul // ok
//$nextM=Oct // pas ok!


Jai essayé avec un autre mois:

Code : Tout sélectionner

themonth=9; $prevM = date("M", mktime(0, 0, 0, ($themonth - 1) )); $nextM = date("M", mktime(0, 0, 0, ($themonth + 1) )); echo '$prevM='.$prevM.'<br />$nextM='.$nextM;
//il echo :
$prevM=Aug // ok
$nextM=Oct // ok!


Et aussi :

Code : Tout sélectionner

themonth=10; $prevM = date("M", mktime(0, 0, 0, ($themonth - 1) )); $nextM = date("M", mktime(0, 0, 0, ($themonth + 1) )); echo '$prevM='.$prevM.'<br />$nextM='.$nextM;
il echo:
$prevM=Oct //pas ok
$nextM=Dec // ok!


Donc je ne comprenez pas et j'ai aussi essayer avec les chiffre du mois directement dans la function mktime :

Code : Tout sélectionner

prevM = date("M", mktime(0, 0, 0, 9 )); $nextM = date("M", mktime(0, 0, 0, 11)); echo '$prevM='.$prevM.'<br />$nextM='.$nextM;
il echo:
$prevM=Oct
$nextM=Dec


Je ne comprend pas du tout! est un probleme du server ? ou un bug de PHP ??