Probleme mit "cal_days_in_month" nach Neuinstallation

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

  • Probleme mit "cal_days_in_month" nach Neuinstallation

    Hallo Zusammen,

    ich habe Gestern meinen vServer neuinstalliert. Hierbei habe ich die die PHP-Version 5.2.6 aufgespielt. Seitdem funktioniert die Funktion "cal_days_in_month" nicht mehr. Hat Jemand eine Ahnung warum?

    Unter Google fand ich einige Beiträge, bei denen User die Funktion erst ektivieren mussten. Kann das der fall sein? Was muss ich dann genau aktivieren?

    Vielen herzlichen Dank.

    Gruß jan

  • #2
    ist die php version mit with --enable-calendar kompiliert?
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Hallo MelloPie,

      die Neuinstallation wurde von Serveranbieter durchgeführt. Das heißt, die haben da wahrscheinlich einfach ein Image eingespielt. Anbieter ist Server4you.

      hilft dir das weiter?

      Kommentar


      • #4
        phpinfo() hilft weiter, sonst nichts.

        Kommentar


        • #5
          Original geschrieben von jandayne
          hilft dir das weiter?
          Warum sollte mir das helfen? Ich hab kein Problem mit der Funktion :-P
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            Re: Probleme mit "cal_days_in_month" nach Neuinstallation

            Original geschrieben von jandayne
            Hallo Zusammen,

            ich habe Gestern meinen vServer neuinstalliert. Hierbei habe ich die die PHP-Version 5.2.6 aufgespielt. Seitdem funktioniert die Funktion "cal_days_in_month" nicht mehr. Hat Jemand eine Ahnung warum?
            Die Kalendererweiterung von PHP, die die Funktion cal_days_in_month() beinhaltet, gehört nicht zum PHP-Kern.

            Unter Google fand ich einige Beiträge, bei denen User die Funktion erst ektivieren mussten. Kann das der fall sein? Was muss ich dann genau aktivieren?
            Du kannst das sicher nicht. Es sei denn, dein Webhoster bietet dir die Möglichkeit, nachträglich das Laden von Erweiterungen zu erlauben. Kann ich mir bei Massenhostern eher nicht vorstellen.

            Falls es sich nur um die eine Funktion handelt, die dir fehlt, dann kannst du sie auch leicht nachbauen. Eine Möglichkeit ist das Beispiel aus den User-Contributions zu cal_days_in_month():
            http://de.php.net/manual/de/function...onth.php#38666

            Fürs Selberbasteln im Gregorianischen Kalender musst du nur die Schaltjahresregeln kennen, weil der Februar die benötigt. Alle anderen Monate haben immer die gleiche Anzahl von Tagen (30 oder 31).

            Ein Beispiel:
            PHP-Code:
            /// returns 1 if given year is a leap year in a proleptic gregorian calendar; 0 otherwise
              /// return INT(0...1)
              
            function leap_year(
                
            $year NULL
              
            ) {
                if (
                    
            $year 0x03 || //0 !== $year % 4 ||
                    
            === $year 100 &&
                    
            !== $year 400
                
            ) {
                  return 
            0;
                }
                return 
            1;
              } 
            Dann kannst du an die Monate gehen. Diese Funktion hat andere Parameter als cal_days_in_month() und kann nur im (proleptischen) Gregorianischen Kalender rechnen, also aufpassen:

            * cal_days_in_month($calender, $monat, $jahr);
            * days_in_month($jahr, $monat, $optionen); // Optionen einfach weglassen

            PHP-Code:
            /// number of days in given month
              
            function days_in_month(
                
            $year NULL,
                
            $month NULL,
                
            $options /// 1: use %-division on $month allowing a carryover
              
            ) {
                
            // fehler abfangen und optionen beachten
                
            if (!empty($options)) {
                  
            $month $month 12;
                  if (
            $month 0) {
                    
            $month += 12// mathematically correct remainder of the modulo division
                  
            }
                  if (
            === $month) { // normalize from 0...11 (dec...nov) to 1...12 (jan...dec)
                    
            $month 12;
                  }
                }
                elseif (
            $month || $month 12) {
                  return 
            FALSE;
                }

                
            // ab hier geht die Berechnung der Tage los:

                
            static $months_containing_30_days = array (46911);

                if (
            in_array($month$months_containing_30_daysTRUE)) {
                  return 
            30;
                }
                if (
            === $month) {
                  return 
            28 leap_year($year);
                }
                return 
            31;
              } 
            Sich daraus eine cal_days_in_month() zu schnitzen, die den zusätzlichen Kalenderparameter einfach ignoriert, dürfte keine große Hürde mehr sein.
            Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

            Kommentar


            • #7
              benutz doch einfach mktime()
              in der Art:
              echo date('d.m.Y',mktime(0,0,0,date('m')+1,0,date('Y')));
              bekommst Du den letzten Tag des Folgemonats, also die Anzahl der Tage
              Beantworte nie Threads mit mehr als 15 followups...
              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

              Kommentar

              Lädt...
              X