Fatal error: Call to undefined function cal_days_in_month()
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anzahl
auftritt
berechnen
bestandteil
clan
code
entwickeln
funktion
http
jahr
kalender
manual
monat
null
option
parameter
tag
url
weglassen
wende
-
Hi
Ich habe ein tool installiert, doch leider bekomm ich diese fehlermeldung:
Fatal error: Call to undefined function cal_days_in_month() in /home/webpages/lima-city/nt-clan/html/******.php on line 1161
dort steht folgendes:
$days = cal_days_in_month(CAL_GREGORIAN, $month, $year);
was soll ich nun machen? wer hilft mir dieses modul zum laufen zu bringen?
Gruss -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das ist keine PHP-interne tag/funktion">Funktion. Man kann unter PHP selber Funktionen entwickeln, diese Funktion kann jedoch nirgendwo gefunden werden. Wende dich am besten an den/die Entwickler des Scriptes oder gebe uns genauere Informationen über dein Script.
-
Kann mir jemand per icq witerhelfen?
Ich wäre sehr froh, und auch zu grösstem dank verpflichtet
-
Die Funktion steht auf lima nicht zur Verfügung, da es keine wirkliche Standardfunktion ist. Um sie zu aktivieren müsste PHP auf dem Server mit dem Parameter --enable-calendar neu comiliert werden. Auf lima ist das leider nicht möglich.
-
Hallo nt-clan,
Diese Funktion gibt die Anzahl der Tage in einem Monat eines Jahres für den angegebenen Kalender zurück. (Quelle php.net)
Du könntest Probieren dir die Funktion selber zu schreiben. Dürfte nicht so kompliziert sein, da hier nur der Gregorianische Kalender verwendet wird. (= unserer)
if(!function_exists("cal_days_in_month")) { function cal_days_in_month($calendar, $month, $year) { $newtag = 28; for($i = 28; $i <= 31; $i++) { $timestmp = mktime(0,0,0, $Monat, $i, $Jahr); $newtag = intval(date("j", $timestmp)); if($newtag < $i) break; } return $i-1; } }
Diesen Code fügst du zum Beispiel in diese Datei ein in der der Fehler auftritt (am anfang nach dem <?php oder <?).
Sie macht genau das selbe wie die andere PHP Funktion. Achtung allerdings nur für den Gregorianischen Kalender. -
http://de.php.net/manual/de/function.cal-days-in-month.php
Diese Funktion gehört zur PHP-Kalender-Erweiterung.
http://de.php.net/manual/de/book.calendar.php
Diese ist nicht Bestandteil des PHP-Kerns. Aber alle Webhoster (die ich kenne) außer Lima haben sie installiert.
Keine Ahnung warum.
Ich hab meine eigene Kalender-Library.
Um die Anzahl der Tage eines Monats zu berechnen, musst du zuerst feststellen, ob ein Schaltjahr ist.
Das geht für den Gregorianischen Kalender so:
/// 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 || 0 === $year % 100 && 0 !== $year % 400 ) { return 0; } return 1; }
Dann kannst du an die Monate gehen. Meine Funktion hat andere Parameter als cal_days_in_month() und kann nur im Gregorianischen Kalender rechnen, also aufpassen:
* cal_days_in_month($calender, $monat, $jahr);
* days_in_month($jahr, $monat, $optionen); // Optionen einfach weglassen
/// number of days in given month function days_in_month( $year = NULL, $month = NULL, $options = 0 /// 1: use %-division on $month allowing a carryover ) { if (!empty($options)) { $month = $month % 12; if ($month < 0) { $month += 12; // mathematically correct remainder of the modulo division } if (0 === $month) { // normalize from 0...11 (dec...nov) to 1...12 (jan...dec) $month = 12; } } elseif ($month < 1 || $month > 12) { return FALSE; } static $months_containing_30_days = array (4, 6, 9, 11); if (in_array($month, $months_containing_30_days, TRUE)) { return 30; } if (2 === $month) { return 28 + leap_year($year); } return 31; }
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage