Waarom werkt onderstaande code niet?
Ik krijg deze error: Warning: mktime() expects parameter 1 to be long, string given
<?php
$time = time()+(60*60*9);

$begin = mktime('13', '05', '2010');
$eind = mktime('date("d",$time)', 'date("m",$time)', 'date("Y",$time)');
    
$gemiddelde = $begin - $eind;
$gemiddelde = floor($gemiddelde/(24*60*60));
?>


Met vriendelijke groet, Robin van der Vliet.

mktime() vraagt integers als parameters. Verder worden er wat meer parameters gevraagd dan jij opgeeft:

<?php
$begin = mktime(0, 0, 0, 5, 13, 2010);
?>
Moge hopen dat je het verschil weet tussen een string en een numerieke waarde in dit geval van het type long

Let op mktime verwacht 6 parameters: uren,minuten,seconden,maand,dag,jaar

<?php
//$begin = mktime(0, 0, 0, 13, 05, 2010); // 13 kan geen maand zijn!!
$begin = mktime(0, 0, 0, 05, 13, 2010);
?>
<?php
$eind = mktime('date("d",$time)', 'date("m",$time)', 'date("Y",$time)');
?>

Maar hoe los ik dit stukje dan op?
Haal daar de quotes ook eens weg, date() is een functie geen string!
Als je kan lezen lees dan mee:
<?php
$a = 'a'; // $a is nu van het type string
$b = 10; // $b is van het type integer / (long)
?>

En nogmaals:
mktime verwacht de volgende parameters in de volgende volgorde:
uren,minuten,seconden,maand,dag,jaar

en al die variabelen moeten `numeriek` zijn!

En als je het nu nog niet begrijpt:
http://www.php.net/mktime

Reageren