Kalenderproblem

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

  • Kalenderproblem

    Hallo Leute,

    habe ein Problem mit meinem selbst geschriebenen Kalender:

    er zeigt mir alle Monate korrekt an. Ist jedoch der letzte Tag des Monats ein Samstag, so zeigt er als ersten Tag des darauffolgenden Monates nicht Sonntag, sondern Montag an.
    Folge-> PHP verhaut den kompletten Monat!
    Der darauffolgende Monat wird wiederum korrekt dargestellt!

    Ich weiß keinen Rat...

    PHP-Code:
    echo "</body></html>";
        
        
    $monate=array("Januar","Februar","März","April","Mai","Juni","Juli","August"
                      
    "September","Oktober","November","Dezember"); 
            
            
        
    $heute_m date("n");
        
    $heute_y=date("Y");
            
        for (
    $g=0;$g<3;$g++){
        
            
    $ende date("t",mktime(0,0,0,$heute_m+$g,1,$heute_y));
            
    $erster date ("w",mktime(0,0,0,$heute_m+$g,1,$heute_y));
            
    $monat $monate[$heute_m+$g-1];
            
    $monat_n date ("n",mktime(0,0,0,$heute_m+$g,1,$heute_y));
            
    $day=1;$set=1;$wo=1;
            
    //$wo=date("W");
                
    echo "<br>".$monat." ".$heute_y."<br>";
                echo 
    "<table align=\"center\" border=\"0\" cellspacing=\"0\">";
                echo 
    "<colgroup><col width=\"30\"><col width=\"30\"><col width=\"30\"><col width=\"30\"><col width=\"30\"><col width=\"30\"><col width=\"30\"><col width=\"30\"></colgroup>";
                echo 
    "<tr><td class=\"headl\">Wo</td><td class=\"heado\">Mo</td><td class=\"heado\">Di</td><td class=\"heado\">Mi</td><td class=\"heado\">Do</td><td class=\"heado\">Fr</td><td class=\"heado\">Sa</td><td class=\"headr\">So</td></tr>";
                while (
    $day <= $ende){
                echo 
    "<tr><td class=\"headlo\">".$wo;
                for (
    $i=$set;$i<=$set+6;$i++){
                 if (
    $i $erster || $day $ende){
                  echo 
    "<td>&nbsp;</td>";
                 } else {
                  echo 
    "<td>";
                  if (
    $day<10){
                      
    $tag="0".$day;
                  } else {
                      
    $tag=$day;
                  }
                  
    $search=$heute_y."-".$monat_n."-".$tag;
                  
    $search_erg=array_search($search,$termin);
                  if (!empty(
    $search_erg)){
                      
    $mysql_search=$termin[$search_erg];
                      
    $erg=mysql_query("SELECT * FROM cal WHERE termin='$mysql_search'");
                      
    $num=mysql_num_rows($erg);
                      if (
    $num==0){
                          echo 
    "<a href=\"./cal.php\" style=\"border:2px solid blue;\">".$day."</a>";
                      } else {
                          while (
    $daten=mysql_fetch_array($erg)){
                              
                            if(
    $daten[link]=="./cal.php")
                            {
                              echo 
    "<a href=\"".$daten[link]."\" style=\"border:1px solid red; background:red; color:white;\" onmouseover=\"return overlib('";
                            }
                            else
                            {
                              echo 
    "<a href=\"".$daten[link]."\" target=\"_blank\" style=\"border:1px solid red; background:red; color:white;\" onmouseover=\"return overlib('";
                            }
                              echo 
    "<html><head></head><body><h3>".$daten[name]."</h3><br>".$daten[description]."</body></html>";
                              echo 
    "');\" onmouseout=\"return nd();\">".$day."</a>";
                          }
                      }
                  } else {
                      echo 
    $day;
                  }
                  echo 
    "</td>";
                  
    $day++;
                 }
                }
                
    $set+=6;
                
    $wo++;
                echo 
    "</tr>";
            }
        echo 
    "</table>" 
    Es werden immer drei Monate hintereinander angezeigt.

    Hoffe mir kann jemand helfen!

    MfG

    mo

  • #2
    PHP-Code:

    $ende 
    date("t",mktime(0,0,0,$heute_m+$g,1,$heute_y));
            
    $erster date ("w",mktime(0,0,0,$heute_m+$g,1,$heute_y));
            
    $monat $monate[$heute_m+$g-1];
            
    $monat_n date ("n",mktime(0,0,0,$heute_m+$g,1,$heute_y));
            
    $day=1;$set=1;$wo=1;
            
            if(
    $erster==0)  //immer wenn der Monatserste ein Sonntag ist, wird $erster auf 0 gesetzt, was jedoch falsch ist
            
    {
                
    $erster=7;
            } 
    Das war das Problem ;-)

    Kommentar

    Lädt...
    X