Rechenfehler in mktime() ???

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Rechenfehler in mktime() ???

    Um aus einem Datum das dazu gehörende Sternzeichen zu ermitteln, habe ich dieses im Netz gefundene Script eingesetzt:

    function sternzeichen($day, $month) {
    $zodiac = array('Steinbock','Steinbock','Wassermann','Fische','Widder',
    'Stier','Zwilling','Krebs','Löwe','Jungfrau','Waage',
    'Skorpion','Schütze');

    $dates = array( 0 => array(mktime(0,0,0,12,22), mktime(0,0,0,12,31)),
    1 => array(mktime(0,0,0,01,01), mktime(0,0,0,01,19)),
    2 => array(mktime(0,0,0,01,20), mktime(0,0,0,02,18)),
    3 => array(mktime(0,0,0,02,19), mktime(0,0,0,03,20)),
    4 => array(mktime(0,0,0,03,21), mktime(0,0,0,04,19)),
    5 => array(mktime(0,0,0,04,20), mktime(0,0,0,05,20)),
    6 => array(mktime(0,0,0,05,21), mktime(0,0,0,06,21)),
    7 => array(mktime(0,0,0,06,22), mktime(0,0,0,07,22)),
    8 => array(mktime(0,0,0,07,23), mktime(0,0,0,08,22)),
    9 => array(mktime(0,0,0,08,23), mktime(0,0,0,09,22)),
    10 => array(mktime(0,0,0,09,23), mktime(0,0,0,10,23)),
    11 => array(mktime(0,0,0,10,24), mktime(0,0,0,11,21)),
    12 => array(mktime(0,0,0,11,22), mktime(0,0,0,12,21)));

    foreach($dates as $k=>$v) {
    if(mktime(0,0,0,$month,$day) >= $v[0] && mktime(0,0,0,$month,$day) <= $v[1]) {
    return $zodiac[$k];
    }
    }
    return FALSE;
    }

    Das funktioniert auch soweit, nur wird bei manchen Daten immer Waage ausgegeben. Läßt man sich dann jeweils per date() das Datum ausgeben, wird von $v[1] in Zeile 8 bis $v[0] in Zeile 10 immer der 22. bzw. 23.12. des Vorjahres ausgegeben.
    Nimmt man jetzt die führenden Nullen bei dem Monat raus, stimmt die Ausgabe.

    Jetzt meine Frage: Ist da ein Fehler in de mktime Befehl oder woher kommt der Effekt?
    Manche Worte wissen selbst nicht, was sie
    bedeuten.

  • #2
    Du weisst aber schon was oktalzahlen sind?
    http://www.php.net/manual/en/language.types.integer.php
    http://de.wikipedia.org/wiki/Oktalsystem
    Zuletzt geändert von goth; 28.02.2006, 00:36.
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      Original geschrieben von goth
      Du weisst aber schon was oktalzahlen sind?
      http://www.php.net/manual/en/language.types.integer.php
      http://de.wikipedia.org/wiki/Oktalsystem
      Ja, aber was hat das mit mktime zu tun? Soviel ich weiß, arbeitet PHP mit Dezimalzahlen.
      Manche Worte wissen selbst nicht, was sie
      bedeuten.

      Kommentar


      • #4
        Re: Rechenfehler in mktime() ???

        Original geschrieben von sprint
        Soviel ich weiß, arbeitet PHP mit Dezimalzahlen.
        Dann liegt genau im "soviel du weißt" das Problem.


        Mann, dir wurde die Erklärung im Manual doch schon verlinkt ...
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar

        Lädt...
        X