PHP mit Kalenderfunktion - Infos?

sticki

sticki

Aktives Mitglied
Thread Starter
Dabei seit
26.07.2006
Beiträge
158
Reaktionspunkte
0
Hi,

ich stehe momentan vor einem Problem: ich möchte ein PHP-Skript erstellen, worin ein Kalender genutzt wird, z.b. um Arbeitszeiten zu verteilen.

Ich komme allerdings auf keinen grünen Zweig und habe auch keine Einfälle, wie ich das realisieren könnte.
Ich weiss aber, daß PHP irgendwie einen Kalender 'eingebaut' hat...weiss dazu jemand was näheres? Kann jemand Lektüre dazu empfehlen (gerne auch Bücher)?

Hab bisher in keinem Buch etwas darüber lesen können...

Grüße,
Marc
 
PHP hat keine Kalender eingebaut! Es verfügt aber sehrwohl über die übliche Arithmetik für Datum und Uhrzeit. Wie alles sehr gut beschrieben bei PHp itself:

http://www.php.net/manual/de/ref.datetime.php

Es mag sein, daß es Kalender-Konstrukte im PEAR gibt, das weiß ich nicht.

Was genau suchst Du denn? "kein grüner Zweig" und "keine Einfälle" beschreibt ja nur ungenau was Du machen möchtest. Willst Du mit Daten rechnen? Suchst Du nach Möglichkeiten Datumsangaben einzugeben? Was genau ist Dein Problem?
 
also wenn ich phpinfo(); mach, kommt weiter unten calendar_support enabled...dachte, daß würde irgendwas bedeuten. ;)

ich suche z.b. etwas, was bei drücken auf einen button einen minicalender popuppt, wo man ein datum auswählt, welches dann später beim submitten in die mysql-db übertragen wird. das wäre das kleinere problem.

das größere wär es dann, einen kalender zu implementieren, der z.b. weiss, wann feiertag/sonntag/werktag usw. ist und wo ich pro tag bestimmte zeiten eingeben und später mit aufträgen ausfüllen kann.

es geht im groben um eine art arbeitsplan...z.b. hat ein tag 5000 minuten an arbeitszeit zu verfügung (natürlich nicht immer, sondern abhängig davon, wieviele mitarbeiter an dem bestimmten tag anwesend sind). nun habe ich bestimmte aufträge mit bestimmten arbeitszeiten, um diese 5000 minuten zu füllen. das skript sollte dann z.b. herausfinden, welche aufträge am besten hineinpassen, um die 5000 minuten optimal auszufüllen und diese dann eintragen. das ganze soll dann natürlich auch grafisch ausgegeben werden und am besten sollte man nachher auch noch manuell festlegen können, welcher auftrag wann ansteht.

alles in allem also keine zu einfache sache...ich will hier auch keinen code schnorren o.ä., sondern suche nur nach einem kleinen schubser in die richtige richtung. ;)

grüße, marc
 
sticki schrieb:
das skript sollte dann z.b. herausfinden, welche aufträge am besten hineinpassen, um die 5000 minuten optimal auszufüllen und diese dann eintragen. das ganze soll dann natürlich auch grafisch ausgegeben werden und am besten sollte man nachher auch noch manuell festlegen können, welcher auftrag wann ansteht.

Spätestens hier würd ich zu einer Rich-GUI Lösung greifen

sticki schrieb:
ich suche z.b. etwas, was bei drücken auf einen button einen minicalender popuppt, wo man ein datum auswählt, welches dann später beim submitten in die mysql-db übertragen wird. das wäre das kleinere problem.

Das eintragen in die DB mußt Du selbst machen/programmieren! Interaktionen am Client macht nicht der Webserver(PHP) das wäre ein Javascript.

Was Du suchst ist eine fertige Lösung für Disponenten. Generell gibt es für PHP Groupware, die stellt sowas wie Kalender zur Verfügung ( die Du dann für jeden Arbeitnehmer/Tag füllen kannst). Speziell für Dein Problem sind die jedoch nicht unbedingt gedacht.

ich will hier auch keinen code schnorren o.ä., sondern suche nur nach einem kleinen schubser in die richtige richtung.

das hab ich mir schon gedacht. Frage: Wieviel Erfahrung hast Du überhaupt im programmieren? Ich glaube Du stellst Dir das etwas zu leicht vor sowas kurz selbst zu schreiben.
 
wegus schrieb:
Spätestens hier würd ich zu einer Rich-GUI Lösung greifen
ja, hab ich mir schon gedacht...AJAX oder sowas ähnliches.

Was Du suchst ist eine fertige Lösung für Disponenten. Generell gibt es für PHP Groupware, die stellt sowas wie Kalender zur Verfügung ( die Du dann für jeden Arbeitnehmer/Tag füllen kannst). Speziell für Dein Problem sind die jedoch nicht unbedingt gedacht.
hmm, müsste ich mal antesten.

das hab ich mir schon gedacht. Frage: Wieviel Erfahrung hast Du überhaupt im programmieren? Ich glaube Du stellst Dir das etwas zu leicht vor sowas kurz selbst zu schreiben.

nunja, im universitären umfeld sinds schon 4 jahre mit allem querbeet, Java, C++, Haskell, OpenGL, OpenSG...mit PHP und MySQL hab ich mich auch schon öfter auseinandergesetzt, selbst 'from scratch' programmieren allerdings erst seit gut 3-4 monaten.

es ist halt auch ein schwieriges thema, weil man am besten HTML, PHP, MySQL, CSS, Javascript(oder AJAX) usw. können muss und alles miteinander verwurstet.

leicht hab ich mir das auf keinen fall vorgestellt, speziell die kalendersache nicht. ich dachte halt, daß PHP da irgendeine Unterstützung mitbringt, auf die ich aufbauen kann. nicht umsonst gibts ja z.b. das hier: http://www.w3schools.com/php/php_ref_calendar.asp

aber du hast schon recht, im prinzip wird das wohl sowas wie eine disponentensoftware...
 
stickie schrieb:
ich dachte halt, daß PHP da irgendeine Unterstützung

Das mag sogar sein, ich vermute als 3rd-Party Komponente gibt es ggf. sowas. Falls Du lieber Komponentenbasiert arbeiten magst, ist vielleicht Java und ein Tomcat-Server eher was für Dich? Mit Apaches MyFaces und der Tomcat-Bibliothek hast Du dann auch solche Kalender! Kannst Du Java ?
 
hmm, also switchen kann ich jetzt eigentlich nicht mehr, weil ich schon für das projekt viel in php gemacht hab. es fehlt halt nur noch dieses eine 'feature'.

vielleicht liest ja heut abend noch jemand drüber, der vielleicht eine gute idee hat...;)
 
Wenn es ums reine Anzeigen geht, dann hätte ich diesen Kalender hier für Dich. Etwas aufblasen und Du kannst darin ein paar HREF einbauen und etwas damit machen?

PHP:
function showcal ()
{
 $args 		= func_get_args();
 $monat     = & $args[0];
 $jahr      = & $args[1];
 
 
 setlocale (LC_ALL, 'deDE');
 
$datum =  mktime(0, 0, 0, $monat, 1, $jahr);

if(date(w, mktime(0, 0, 0, date(n,$datum), 1, date(Y,$datum))) == 1 && date(t,$datum) == 28)
{
    $AnzahlDerZeilen = 4;
}
elseif(((date(w, mktime(0, 0, 0, date(n,$datum), 1, date(Y,$datum))) == 6 ||
  date(w, mktime(0, 0, 0, date(n,$datum), 1, date(Y,$datum))) == 0) && date(t,$datum) == 31) ||
 (date(w, mktime(0, 0, 0, date(n,$datum), 1, date(Y,$datum))) == 0 && date(t,$datum) == 30))
{
    $AnzahlDerZeilen = 6;
}
else
{
    $AnzahlDerZeilen = 5;
}
echo'
<table border="1" bordercolor="darkgray" cellpadding="2" cellspacing="0">
 <tr>
  <td align="center" colspan="7">' .  date("M",$datum) . ' ' . date("Y",$datum)  . '</td>
 </tr>
 <tr>
  <td width="25">Mo</td>
  <td width="25">Di</td>
  <td width="25">Mi</td>
  <td width="25">Do</td>
  <td width="25">Fr</td>
  <td width="25">Sa</td>
  <td width="25">So</td>
 </tr>';
$k = 0;
for($i = 1; $i <= $AnzahlDerZeilen; $i++)
{
echo ' <tr>';
    for($j = 1; $j <= 7; $j++)
    {
        if(date(w, mktime(0, 0, 0, date(n,$datum), 1, date(Y,$datum))) == 0)
        {
            $m = 7;
        }
        else
        {
            $m = date(w, mktime(0, 0, 0, date(n,$datum), 1, date(Y,$datum))); 
        }
 
        if($m == $j && $j <= 7 && $k == 0)
        {
            $k = 1;
        }
echo '<td align="right">';
        if($k != 0 && $k <= date(t,$datum))
        {
            echo$k;
        }
        else
        {
            echo"&nbsp;";
        }
 
        if(
$k != 0)
        {
            $k++;
        }
echo '</td>';
    }
echo '</tr>';
}
echo '</tr></table>';
}
 
Zurück
Oben Unten