Ergebnis 1 bis 5 von 5

Thema: mktime() Error

  1. #1
    TP-Member
    Registriert seit
    May 2008
    Ort
    Essen
    Beiträge
    53

    mktime() Error

    Hi. Ich hab folgendes Problem ich hab diesen PHP Code, um aus einem Geburtsdatum das Sternzeichen heraus zu lesen.
    PHP-Code:
    <?php $dateArray=explode("-",$row->birthday);
     
    function 
    Sternzeichen($t,$m,$j) {
     
    $tag date("d",mktime(0,0,0,$m,$t,$j)); //Zeile 140
     
    $monat date("n",mktime(0,0,0,$m,$t,$j)); //Zeile 141
     
    if ($tag 20 && $monat == || $tag 21 && $monat == 4) {
      
    $zeichen "Widder";
     }
     if (
    $tag 20 && $monat == || $tag 21 && $monat == 5) {
      
    $zeichen "Stier";
     }
     if (
    $tag 20 && $monat == || $tag 22 && $monat == 6) {
      
    $zeichen "Zwillinge";
     }
     if (
    $tag 21 && $monat == || $tag 23 && $monat == 7) {
      
    $zeichen "Krebs";
     }
     if (
    $tag 22 && $monat == || $tag 24 && $monat == 8) {
      
    $zeichen "Löwe";
     }
     if (
    $tag 23 && $monat == || $tag 24 && $monat == 9) {
      
    $zeichen "Jungfrau";
     }
     if (
    $tag 23 && $monat == || $tag 24 && $monat == 10) {
      
    $zeichen "Waage";
     }
     if (
    $tag 23 && $monat == 10 || $tag 23 && $monat == 11) {
      
    $zeichen "Skorpion";
     }
     if (
    $tag 22 && $monat == 11 || $tag 22 && $monat == 12) {
      
    $zeichen "Schütze";
     }
     if (
    $tag 21 && $monat == 12 || $tag 21 && $monat == 1) {
      
    $zeichen "Steinbock";
     }
     if (
    $tag 20 && $monat == || $tag 20 && $monat == 2) {
      
    $zeichen "Wassermann";
     }
     if (
    $tag 19 && $monat == || $tag 21 && $monat == 3) {
      
    $zeichen "Fische";
     }
     return 
    "".$zeichen;
    }

    $tag $dateArray[2];
    $monat =  $dateArray[1];
    $jahr $dateArray[0];

    echo 
    Sternzeichen($tag,$monat,$jahr);
    ?>
    Aber ich bekomme immer diesen Fehler angezeigt
    PHP-Code:
    Warningmktime() expects parameter 6 to be longstring given in /homepages/35/d171368145/htdocs/Fussball/components/com_joomleague/extensions/eintracht/views/player/tmpl/default_info.php on line 140

    Warning
    mktime() expects parameter 6 to be longstring given in /homepages/35/d171368145/htdocs/Fussball/components/com_joomleague/extensions/eintracht/views/player/tmpl/default_info.php on line 141
    Steinbock 
    Hoffentlich könnt ihr mir helfen.
    Browser:Firefox 3.6
    OS:Windows 7
    Hardware:XPS 1530

  2. #2
    TP-Specialist Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    Hallo mikescho,

    ich vermute mal, dass Du den Schnipsel irgendwo aus dem Netz gefischt hast aber nicht wirklich weißt was da vor sich geht, oder?

    Die wichtigste Info fehlt hier nämlich: das Datum-Format das aus $row->birthday kommt. Ich vermute mal, dass es ein DATETIME Feld aus einer MySQL Datenbank ist. Falls ja, dann hat das Datum nicht das Format yyyy-mm-dd sondern yyyy-mm-dd hh:mm:ss. Wenn das jetzt per explode am Bindestrich getrennt wird, hast Du 3 Segmente: 1) Zahl yyyy 2) Zahl mm 3) Zeichenkette dd hh:mm:ss
    Damit kann mktime natürlich nichts anfangen und meckert.

    Es gibt verschiedene Varianten das Problem zu löschen:

    1) Schon beim Auslesen aus der DB nicht das Datum zurück holen, sondern mit UNIX_TIMESTAMP direkt einen Timestamp, der an die date-Funktion in PHP übergeben wird.

    2) Du sparst dir den Umwandelheckmeck mit PHP und liest direkt aus MySQL Tag/Monat aus -> DATE_FORMAT()

    3) Alternativ zu 2) kommen eventuell auch DAY und MONTH in Frage.

    Auch die PHP Funktion gefällt mir nicht wirklich. Da könnte man viel eleganter mit einer Switch arbeiten.
    Angenommen Du übergibst den Tag und den Monat wie oben beschrieben, dann könnte die Switch dazu in etwa so aussehen:
    PHP-Code:
    $monat 6;
    $tag   4;

    switch (
    $monat)
    {
        case  
    1: ($tag <= 20) ? $sz 'Steinbock'  $sz 'Wassermann'; break;
        case  
    2: ($tag <= 19) ? $sz 'Wassermann' $sz 'Fische'; break;
        case  
    3: ($tag <= 20) ? $sz 'Fische'     $sz 'Widder'; break;
        case  
    4: ($tag <= 20) ? $sz 'Widder'     $sz 'Stier'; break;
        case  
    5: ($tag <= 20) ? $sz 'Stier'      $sz 'Zwilling'; break;
        case  
    6: ($tag <= 21) ? $sz 'Zwilling'   $sz 'Krebs'; break;
        case  
    7: ($tag <= 22) ? $sz 'Krebs'      $sz 'Löwe'; break;
        case  
    8: ($tag <= 23) ? $sz 'Löwe'       $sz 'Jungfrau'; break;
        case  
    9: ($tag <= 23) ? $sz 'Jungfrau'   $sz 'Waage'; break;
        case 
    10: ($tag <= 23) ? $sz 'Waage'      $sz 'Skorpion'; break;
        case 
    11: ($tag <= 22) ? $sz 'Skorpion'   $sz 'Schütze'; break;
        case 
    12: ($tag <= 21) ? $sz 'Schütze'    $sz 'Steinbock'; break;
        default: 
    $sz 'unbekannt'; break;
    }

    // Gibt Zwilling aus
    echo $sz

  3. #3
    TP-Member
    Registriert seit
    May 2008
    Ort
    Essen
    Beiträge
    53
    <?php $datum = strtotime($this->person->birthday);
    $monat=date (m,$datum);
    $tag =date (t,$datum);

    switch ($monat)
    {
    case 1: ($tag <= 20) ? $sz = 'Steinbock' : $sz = 'Wassermann'; break;
    case 2: ($tag <= 19) ? $sz = 'Wassermann' : $sz = 'Fische'; break;
    case 3: ($tag <= 20) ? $sz = 'Fische' : $sz = 'Widder'; break;
    case 4: ($tag <= 20) ? $sz = 'Widder' : $sz = 'Stier'; break;
    case 5: ($tag <= 20) ? $sz = 'Stier' : $sz = 'Zwilling'; break;
    case 6: ($tag <= 21) ? $sz = 'Zwilling' : $sz = 'Krebs'; break;
    case 7: ($tag <= 22) ? $sz = 'Krebs' : $sz = 'Löwe'; break;
    case 8: ($tag <= 23) ? $sz = 'Löwe' : $sz = 'Jungfrau'; break;
    case 9: ($tag <= 23) ? $sz = 'Jungfrau' : $sz = 'Waage'; break;
    case 10: ($tag <= 23) ? $sz = 'Waage' : $sz = 'Skorpion'; break;
    case 11: ($tag <= 22) ? $sz = 'Skorpion' : $sz = 'Schütze'; break;
    case 12: ($tag <= 21) ? $sz = 'Schütze' : $sz = 'Steinbock'; break;
    default: $sz = 'unbekannt'; break;
    }

    // Gibt Zwilling aus
    echo $sz;
    ?>
    Browser:Firefox 3.6
    OS:Windows 7
    Hardware:XPS 1530

  4. #4
    TP-Urgestein Avatar von webcreate
    Registriert seit
    Nov 2003
    Ort
    NRW
    Beiträge
    11.661
    Mal so als tipp: $tag =date (j,$datum);
    Tipp2: Ref lesen
    Gruß Mark

    webcreate IT SOLUTIONS
    www.webcreate-nrw.de

    Photoblog....|....flickr

  5. #5
    TP-Specialist Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    Irgendwie kann man nur noch mit dem Kopf schütteln und weiter gehen. Kein Bitte, kein Danke, Code wird wortlos 1:1 übernommen. Aus offensichtlicher Unfähigkeit ist man nicht mal in der Lage eine einfache Variable korrekt zu übergeben. Es wird aber weder eine Fehlermeldung noch sonst ein Hinweis gepostet. Soll man als Helfer jetzt auch noch selbst nach dem Fehler suchen um ein Problem von ANDEREN zu lösen?

    So eine lausige Eigeninitiative ist schon erschreckend und ehrlich gesagt ärgere ich mich auch direkt, dass ich überhaupt MAL WIEDER so doof war und probiert habe mit einer fix&fertig Lösung zu helfen.

    Yet another 5 minutes of my lifetime wasted.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. [Sonstige] Bilder Upload Error 500 - Internal server error
    Von Equipment im Forum Traum-Dynamik
    Antworten: 10
    Letzter Beitrag: 14.10.2008, 00:11
  2. Error - WO!?
    Von Jessi-Blue im Forum Flash & Multimedia
    Antworten: 3
    Letzter Beitrag: 30.09.2006, 06:57
  3. Antworten: 4
    Letzter Beitrag: 07.01.2006, 13:14
  4. pdf error (open range check error)
    Von yum im Forum PrePress
    Antworten: 4
    Letzter Beitrag: 17.02.2005, 22:22
  5. Problem mit mktime
    Von jph im Forum Traum-Dynamik
    Antworten: 9
    Letzter Beitrag: 02.03.2003, 22:29

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51