Kalendář - Týdenní

Klíčová slova: kalendář, mktime
Rubrika: PHP
Následující skript vám pomůže vytvořit týdenní kalendář. Kalendář zobrazuje všechny dny týdne v jednom řádku. Kalendář umožňuje přechod na následující i předchozí týden. Jde o základní formu bez doplňujícího designu. Výsledek pak vypadá asi takto:
Týdenní kalendář
 
A teď již vlastní script.
 

<html>
<head>
<title>Kalendář - Týdenní</title>
</head>
<body>
<?php
// Do pole $monthnum definujeme české názvy měsíců
$monthnum = array(1=>"Leden", 2=>"Únor", 3=>"Březen", 4=>"Duben", 5=>"Květen",
6=>"Červen", 7=>"Červenec", 8=>"Srpen", 9=>"Září", 10=>"Říjen", 11=>"Listopad", 12=>"Prosinec");
// Do pole $daynum definujeme české zkratky názvu dní
$daynum = array(1=>"pondělí", 2=>"úterý", 3=>"Středa", 4=>"Čtvrtek", 5=>"Pátek", 6=>"Sobota", 0=>"Neděle");

if (IsSet($id))
{
$today = getdate($id);
}
else
{
$today = getdate();
}

$prev = mktime(0, 0, 0, $today['mon'], $today['mday']-7, $today['year']); // Předchozí týden
$next = mktime(0, 0, 0, $today['mon'], $today['mday']+7, $today['year']); // Následující týden

// První den v týdnu - v případě Po..So a Ne
if ($today['wday']>0) $firstday_num = $today['mday']-$today['wday']+1;
else $firstday_num = $today['mday']-$today['wday']-6; // První den v týdnu - v případě Ne

$firstday = mktime(0, 0, 0, $today['mon'], $firstday_num, $today['year']); // První den v týdnu
$d_firstday = getdate($firstday);

$lastday = mktime(0, 0, 0, $today['mon'], $firstday_num+6, $today['year']); // Poslední den v týdnu
$d_lastday = getdate($lastday);

if (date("m",$firstday)==date("m",$lastday))
{
// týden uprostřed měsíce
$str_top = $monthnum[$today['mon']].'&nbsp;'.$today['year'];
}
else
{
// týden na přestupu dvou měsíců
$str_top = $monthnum[$d_firstday['mon']].'/'.$monthnum[$d_lastday['mon']].'&nbsp;'.$today['year'];
}

$week_num = floor($d_firstday["yday"]/7)+2; // číslo týdne v roce +2
if ($week_num>52) $week_num = 1; // První týden v roce


echo '<table border="1" align="center">'." ";
echo '<tr>
<td colspan="7" align="center">
<b>'.$week_num.'&nbsp;týden</b>
</td>
</tr>'." ";
echo '<tr>
<td colspan="7" align="center">
<a href="kalendar3.php?id='.$prev.'">&lt;</a>
<b>&nbsp;'.$str_top.'</b>&nbsp;
<a href="kalendar3.php?id='.$next.'">&gt;</a>
</td>
</tr>'." ";


for ($numrow=1; $numrow <= 5; $numrow++)
{
echo "<tr> ";
for ($daycount=$firstday_num; $daycount <= $firstday_num+6; $daycount++)
{
if ($numrow==1)
{
// na první řádce je popis (např. Pondělí - 25.)
$showday = mktime(0, 0, 0, $today['mon'], $daycount, $today['year']);
echo'<td width="80" height="20" align="center">'.$daynum[date("w",$showday)].'&nbsp;-&nbsp;'.date("d",$showday).".</td> ";
}
else
{
echo"<td height=20>&nbsp;</td> ";
}
}
echo " </tr> ";
}
echo"</table>";
?>
</body>
</html>

 
Skripty kalendářů si můžete stáhnout z adresy : http://www.provaz.cz/download_id.php?id=47
Autor: Jiří Provazník
Datum vydání: 30.03.2003 | Zobrazeno: 5210
Permanentní odkaz: Kalendář - Týdenní

Komentáře (0)
Přidej vlastní komentář:
Následující (běžně neviditelná) pole slouží pro vnitřní identifikaci systému. Pokud je vyplníte nebude možné váš požadavek na straně serveru zpracovat:
URL:
contents:
Website:
Pro odeslání vašeho komentáře použijte tlačítko "Odeslat". Toto tlačítko nepoužívejte:

Následující položky je vhodné vyplnit:
Jméno :
Email :
Web :
Místo :
Hodnocení:
Hodnocení jako pomocí hvězdiček
1/5= nejhorší, 5/5=nejlepší