Page 1 sur 1

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

Posté : 02 janv. 2007, 12:39
par Invité
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

Posté : 02 janv. 2007, 12:54
par charabia
$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.

Posté : 02 janv. 2007, 14:22
par Invité
je l'ai mis suite à l'erreur ecrite mais cela n'a rien changé.
merci

Posté : 02 janv. 2007, 15:18
par Truc
Décompose les fonctions et calculs tu y veras plus clair :)

Posté : 02 janv. 2007, 16:18
par Invité
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

Posté : 02 janv. 2007, 16:37
par jojolapine
à quoi correspond $date(..) ?
tu as rajouté un $ de trop je crois ;-)

Posté : 02 janv. 2007, 16:46
par Invité
en faite avant ce code j'ai
$date = Array('annee'=>date('Y', $dat), 'mois'=>date('m', $dat), 'jour'=>date('d', $dat));

Posté : 02 janv. 2007, 16:48
par jojolapine
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']

Posté : 02 janv. 2007, 17:05
par Invité
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

Posté : 02 janv. 2007, 17:23
par jojolapine
et que t'affiche
print_r($date);
?

Posté : 02 janv. 2007, 17:25
par Invité
Array ( [annee] => 1970 [mois] => 01 [jour] => 01 )

Posté : 02 janv. 2007, 17:37
par fab
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();

Posté : 02 janv. 2007, 17:45
par Invité
ok merci bcp. J'ai compris, j'ai mis strtotime($dat)

merci

Posté : 02 janv. 2007, 17:47
par fab
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 :)

Posté : 02 janv. 2007, 21:40
par Truc
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é). ;)