erreur : Warning: mktime() expects parameter 6 to be long

Invité
Invité n'ayant pas de compte PHPfrance

02 janv. 2007, 12:39

Bonjour,

Voila, j'ai une erreur sur mon code, cela m'affiche

Code : Tout sélectionner

Warning: mktime() expects parameter 6 to be long
$unjrdeplus = date('d/m/Y', (mktime(0, 0, 0, date('mois'), (date('jour')+1), date('annee')))); 
voila, jespère que vous allez avoir une idée.
merci d'avance

Avatar du membre
ViPHP
ViPHP | 3008 Messages

02 janv. 2007, 12:54

$unjrdeplus = date('d/m/Y', mktime(0, 0, 0, date('mois'), date('jour')+1, date('annee')) );
Pas de parenthèse avant le mktime je crois.

Invité
Invité n'ayant pas de compte PHPfrance

02 janv. 2007, 14:22

je l'ai mis suite à l'erreur ecrite mais cela n'a rien changé.
merci

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

02 janv. 2007, 15:18

Décompose les fonctions et calculs tu y veras plus clair :)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Invité
Invité n'ayant pas de compte PHPfrance

02 janv. 2007, 16:18

Voila j'ai decomposé ma fonction
$unjrdeplus = mktime(00, 00, 00, $date('mois'), $date('jour')+1, $date('annee')); 

$unjrdeplus = date('d/m/Y', unjrdeplus); 
Et maintenant j'ai l'erreur

Code : Tout sélectionner

Fatal error: Function name must be a string in
sur la ligne
$unjrdeplus = mktime(00, 00, 00, $date('mois'), $date('jour')+1, $date('annee')); 
merci d'avance

ViPHP
ViPHP | 3607 Messages

02 janv. 2007, 16:37

à quoi correspond $date(..) ?
tu as rajouté un $ de trop je crois ;-)

Invité
Invité n'ayant pas de compte PHPfrance

02 janv. 2007, 16:46

en faite avant ce code j'ai
$date = Array('annee'=>date('Y', $dat), 'mois'=>date('m', $dat), 'jour'=>date('d', $dat));

ViPHP
ViPHP | 3607 Messages

02 janv. 2007, 16:48

alors tu as fait une autre faute... si tu as tes temps dans une variable de type tableau, il ne faut pas essayer d'atteindre ces valeurs comme ça:
$date('mois')
, mais plutôt comme ceci:
$date['mois']

Invité
Invité n'ayant pas de compte PHPfrance

02 janv. 2007, 17:05

merci cela ne m'ecrit plus l'erreur, par contre ce qui est afficher est faux.

mon code :
echo $dat;
$date = Array('annee'=>date('Y', $dat), 'mois'=>date('m', $dat), 'jour'=>date('d', $dat));
$unjrdeplus = mktime(0, 0, 0, $date['mois'], $date['jour']+1, $date['annee']); 
$unjrdeplus = date('d/m/Y', $unjrdeplus); 
echo $unjrdeplus; 
donc mon echo $dat affiche par exemple 2007-01-01 mais mon echo $nbjrsdeplus m'affiche 02/01/1970

encore merci

ViPHP
ViPHP | 3607 Messages

02 janv. 2007, 17:23

et que t'affiche
print_r($date);
?

Invité
Invité n'ayant pas de compte PHPfrance

02 janv. 2007, 17:25

Array ( [annee] => 1970 [mois] => 01 [jour] => 01 )

ViPHP
fab
ViPHP | 2657 Messages

02 janv. 2007, 17:37

Le deuxieme argument de la fonction date() doit être un timestamp type UNIX donc généré par exemple avec time()
essaye donc avec
$dat = time();
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Invité
Invité n'ayant pas de compte PHPfrance

02 janv. 2007, 17:45

ok merci bcp. J'ai compris, j'ai mis strtotime($dat)

merci

ViPHP
fab
ViPHP | 2657 Messages

02 janv. 2007, 17:47

La prochaine fois pense a t'inscrire, tu pourras ainsi mettre le sujet en Résolu ça évitera a certaines personnes de lire tout le sujet pour rien :)
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

02 janv. 2007, 21:40

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton [Mettre Résolu] qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié). ;)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute