Ankündigung

Einklappen
Keine Ankündigung bisher.

Kalender

Einklappen

Neue Werbung 2019

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

  • Gast-Avatar
    Ein Gast erstellte das Thema Kalender.

    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!

  • Zergling-new
    antwortet
    Und verwende Datumsfunktionen zum Berechenen des vorherigen/nächsten Monats/Jahres. Die können das besser

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:

Lädt...
X