login  Naam:   Wachtwoord: 
Registreer je!
 Forum

mktime() expects parameter 6 to be long

Offline royke92 - 27/10/2008 19:10
Avatar van royke92Nieuw lid Hoi,

Op mijn website heb ik een script van deze website toegepast.
Dit script zorgt ervoor dat je datum (bijv. 2008-10-27) wordt omgezet naar de dag (bijv. Maandag). Maar nu krijg ik deze error:

Warning: mktime() expects parameter 6 to be long, string given on line 63.

  1. <?php
  2. function welkeDag($datum) {
  3. $exp = explode("-", $datum);
  4. $maketime = mktime(0, 0, 0, $exp[1], $exp[2], $exp[0]);
  5. $date = getdate($maketime);
  6.  
  7. return $date['weekday'];
  8. }
  9. ?>


Kan iemand mij misschien helpen?  

b.v.d.  

6 antwoorden

Gesponsorde links
Offline Stijn - 27/10/2008 19:19
Avatar van Stijn PHP expert Je moet typecasten. De items in de array $exp zijn allemaal strings en mktime() eist integers. Zo kan je een string omzetten in een integer.

  1. ...mktime(... , (int) $exp[1] , ... );
Offline Martijn - 27/10/2008 19:23
Avatar van Martijn Crew PHP aha. Ook ik zat me al af te vragen waarom maar dat was best simpel
Offline royke92 - 27/10/2008 19:29 (laatste wijziging 27/10/2008 19:29)
Avatar van royke92 Nieuw lid Oke bedankt,

De error is nu verholpen, maar welke strings moet ik nu omzetten in een integer. Ik heb nu dit:

  1. <?php
  2. function welkeDag($datum) {
  3. $exp = explode("-", $datum);
  4. $maketime = mktime(0, 0, 0, (int) $exp[1], (int) $exp[2], (int) $exp[0]);
  5. $date = getdate($maketime);
  6.  
  7. return $date['weekday'];
  8. }
  9. ?>


Maar hierdoor krijg ik altijd "Tuesday" als uitkomst.

Wat doe ik fout??

Groetjes,
Offline Kr4nKz1n - 27/10/2008 20:36
Avatar van Kr4nKz1n Onbekend Dat wat stijn zegt klopt natuurlijk. Maar ik heb nog NOOIt (int) gebruikt.

Wat gooi je door de functie heen?

Niet dat voorbeeld wat jij gaf. Dan kun je die error niet krijgen.
Offline Diko - 27/10/2008 20:58 (laatste wijziging 27/10/2008 20:59)
Avatar van Diko PHP interesse Ligt waarschijnlijk aan de datum die je er doorheen gooit. Ik zie niet waarom er altijd hetzelfde uit zou komen.

roep eens welkeDag('27-10-2008'); aan...

Edit: of welkeDag(date('d-m-Y')); maar dan moet je er wel op kunnen vertrouwen dat je server goed staat ingesteld.
Offline mark92 - 28/10/2008 20:00
Avatar van mark92 Gouden medaille

Nieuw lid
is dit niet een stuk handiger:
  1. $sVar = '2008-10-27';
  2.  
  3. function welkeDag($sDatum){
  4. $aDagen = array("Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag");
  5. $sDatum = strtotime($sDatum);
  6. return $aDagen[date('w',$sDatum)];
  7. }
  8.  
  9. echo welkeDag($sVar);
  10.  
  11. //Return: Maandag
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.198s