:: Anbieterverzeichnis :: Globale Branchen
:: SELFPHP Forum ::
Fragen rund um die Themen PHP?
In über
130.000 Beiträgen finden Sie sicher die passende
Antwort!
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
:: Qozido ::
Die Bilderverwaltung mit Logbuch für
Taucher und Schnorchler.
Aktuelles Datum in einem Kalender hervorheben (CSS-Layout)
Beispielaufgabe Aktuelles Datum soll als Monatsübersicht in einem Kalender hervorgehoben werden.
Beschreibung
Die Funktion
calendarControl() erzeugt eine Kalenderdarstellung für den aktuellen Monat und hebt farblich den aktuellen Tag hervor. Bei diesem Kalender wurde vollständig auf Tabellen verzichtet und kann somit über ein Style-Sheet sehr einfach angepasst werden. Weiterhin sind Anpassungen sehr einfach durchzuführen (z.B. Verlinkung des aktuellen Tages zu einer bestimmten Webseite).
<?PHP
function calendarControl () {
/* locale auf Deutsch setzen PHP >= 4.3.0 */
setlocale ( LC_ALL , 'de_DE@euro' , 'de_DE' , 'deu_deu' );
$currentMonth = date ( "n" );
$currentTime = time ();
// Wochentag für den 1. im Monat ermitteln
$firstWeekDay = date ( 'w' , mktime ( 0 , 0 , 0 , $currentMonth , 1 ,
date ( 'Y' ) ) );
// Im Englischen beginnt die Wochenrechnung am Sonntag --> 0
// Daher den Wochenbeginn der nächsten Woche berechnen
$nextWeek = 7 - $firstWeekDay + 2 ;
// Ausgeschriebener Monat - z.B. Dezember
$year = strftime ( "%B" , $currentTime );
// Abgekürzter Wochentag - z.B. Sa
$day = strftime ( "%a" , $currentTime );
$calendar = "\n" ;
$calendar .= '<div class="calout">' . "\n" ;
$calendar .= ' <div class="calcellTop">' . $year . '</div>' . "\n" ;
// Wochentage generieren
for ( $x = $nextWeek ; $x < ( $nextWeek + 7 ); $x ++ ){
$day = strftime ( "%a" , mktime ( 0 , 0 , 0 , $currentMonth , $x ,
date ( 'Y' ) ) );
$calendar .= ' <div class="calcellday">' . $day . '</div>' . "\n" ;
}
$iLimit = date ( 't' , mktime ( 0 , 0 , 0 , $currentMonth , 1 ,
date ( 'Y' ) ) );
// Tagesanzeige generieren
for ( $i = 1 ; $i <= ( $iLimit + $firstWeekDay - 1 ); $i ++ ) {
$iDayOfMonth = $i - $firstWeekDay + 1 ;
if ( $i < $firstWeekDay ) {
// Leerzellen schreiben, bis Monatsanfang
// auf den richtigen Tag der Woche faellt.
$calendar .= ' <div class="calcell"> </div>' . "\n" ;
}
elseif ( $iDayOfMonth == date ( 'd' )
&& $currentMonth == date ( 'n' ) ) {
// Heutigen Tag, hervorheben.
$calendar .= ' <div class="calcellactive">' . $iDayOfMonth . '</div>' . "\n" ;
}
else {
$calendar .= ' <div class="calcell">' . $iDayOfMonth . '</div>' . "\n" ;
}
}
$calendar .= '</div>' . "\n" ;
return $calendar ;
}
?>
Anwendungsbeispiel
<?PHP
echo calendarControl ();
?>
Cascading Style Sheets (CSS) .calout {
font-family:Tahoma, Geneva, sans-serif;
font-size:10px;
text-align:center;
width:150px;
}
.calcellTop {
float:left;
width:100%;
color:#333399;
font-size:14px;
font-weight:bold;
}
.calcellday {
float:left;
width:14%;
font-weight:bold;
}
.calcell {
float:left;
width:14%;
}
.calcellactive {
float:left;
width:14%;
background-color:#CC0000;
color:#FFFFFF;
}
Ausgabebeispiel: Browseransicht April
Mo
Di
Mi
Do
Fr
Sa
So
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
:: Anbieterverzeichnis ::
Webhosting/Serverlösungen
Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?
Sie sind nur ein paar Klicks davon entfernt!