Ankündigung

Einklappen
Keine Ankündigung bisher.

Kalender

Einklappen

Neue Werbung 2019

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

  • Kalender

    Hallo Leute!

    Hab folgendes Kalenderskript gefunden, und es läuft eigentlich ganz gut, ausser dass immer im Februar nicht genügend Tage angezeigt werden!!

    Code:
    $year = (isset($_GET['y']) && preg_match('/^\d{4}$/',$_GET['y'])) ? $_GET['y'] : date('Y');
    $month = (isset($_GET['m']) && preg_match('/^\d{1,2}$/',$_GET['m']) && ($_GET['m'] < 13)) ? $_GET['m'] : date('n');
    $days = date('t',mktime(0,0,0,$month,1,$year));
    $start_col = date('w',mktime(0,0,0,$month,1,$year))-1;
    $rows = ($start_col == 5 || $start_col == -1) ? ceil($days/7)+1 : ceil($days/7);
    $day=1;
    $monthname = array('janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre');
    $prev_month = ($month==1) ? 12 : $month-1;
    $prev_year = ($month==1) ? $year-1 : $year;
    $next_month = ($month==12) ? 1 : $month+1;
    $next_year = ($month==12) ? $year+1 : $year;
    $day = 1;
    echo '<div align="center">';
    echo '<div id="calendarbox">';
    
    
    echo '
    	<table>
    		<tr class="border_trl">
    			<th>&laquo;</th>
    			<th colspan="5">'.$monthname[$month-1].' '.$year.'</th>
    			<th>&raquo;</th>
    		</tr>';
    echo '
    		<tr class="border_trl">
    			<th class="dayname">lu</th>
    			<th class="dayname">ma</th>
    			<th class="dayname">me</th>
    			<th class="dayname">je</th>
    			<th class="dayname">ve</th>
    			<th class="dayname">sa</th>
    			<th class="dayname">di</th>
    		</tr>';
    
    for($a=0;$a<$rows;$a++){
    	echo '<tr>';
    	$start_col = ($start_col == -1) ? 6 : $start_col;
    	if($start_col>0 && $day==1){
    		for($aa=$start_col;$aa>0;$aa--){
    			echo '<td class="empty"></td>';
    		}
    	}
    	
    	for($b=$start_col;$b<7;$b++){
    		$cdb->select(sprintf("select substring(eventtime,1,5) _eventtime, topic, shortdesc from e_event where dayofmonth(eventdate) = %d && month(eventdate) = %d && year(eventdate) = %d order by eventtime asc",$day,$month,$year));
    		
    		if($cdb->getRecords()>0){
    			$js_arr = array();
    			while($row = $cdb->fetchArray()){
    				$js_arr[]= 'new Array(\''.$row['_eventtime'].'\',\''.stripslashes($row['topic']).'\',\''.stripslashes($row['shortdesc']).'\')';
    			}
    			$js_arr = 'new Array('.join(',',$js_arr).')';
    		}
    		if(!isset($js_arr)){
    			$s_day = ($day == date('j') && $month == date('n') && $year == date('Y')) ? '<td class="today">'.$day.'</td>' : '<td>'.$day.'</td>';
    		}else{
    			$s_day = ($day == date('j') && $month == date('n') && $year == date('Y')) ? '<td class="today" onmouseover="create_list('.$js_arr.')" onmouseout="remove_list()">'.$day.'</td>' : '<td class="event" onmouseover="create_list('.$js_arr.')" onmouseout="remove_list()">'.$day.'</td>';
    		}
    		echo ($day>$days) ? '<td class="empty"></td>' : $s_day;
    		$day++;
    		unset($js_arr);
    	}
    	echo '</tr>';
    	$start_col = 0;
    }
    echo '</table></div>';
    Hab leider keine Ahnung, woran das liegt... Hat evtl. jemand ne Ahnung? Der Kalender befindet sich übrigens auf http://www.asso-etud.unige.ch/aeti/_...php?m=2&y=2006

    Vielen Dank!

  • #2
    Benutze doch bitte die php-Tags des Boards und kommentiere deinen Quellcode ordentlich. Vielleicht findest du dabei den Fehler sogar selbst.

    Kommentar


    • #3
      Und verwende Datumsfunktionen zum Berechenen des vorherigen/nächsten Monats/Jahres. Die können das besser

      Kommentar

      Lädt...
      X