RJWEBDESIGN - tvorba webových prezentací

Novinky

22.04.2008
Portál Španělský fotbal byl spuštěn, zatím probíhá testování více

06.03.2008
Pracuji na fotbalovém portálu zabývající se španělským fotbalem

12.01.2008
Dokončen fotbalový rezervační systém Profi Football více

08.01.2008
Spuštění modulu Eshopu pro firmu AZ-SportCzech více

04.01.2008
Dokončena prezentace firmy STRAIGHT CONSULT více


Reklama

Španělský fotbal - spanelskyfotbal.cz

Cizí krmivo


Něco málo o mé osobě

Je mi 26 let, bydlím v hlavním městě ČR. Webdesignem a programováním se zabývám již několik let ... více


Snažím se poradit


Sport, sleduji, hraji


Hlavní Logo

Poslední komentáře

  • nechapem -

    nechapem

  • RJ -

    [131]

    Jak zkopirovat? Vse podstatne mate v clanku, deklaraci funkce a jeji pouziti. Nic vic v tom neni

  • Karel Kaleta -

    Dobrý den, potřeboval bych se zeptat, jestli by jste mi nemohl zkopírovat soubor uložený na vaší adrese http://www.rjwebdesign.net/…ss/index.php a poíslat mejlem. Nevím jak rozjet vaši RSS čtečku a s tímhle to mám jednodušší. Díky za odpověď.

  • RJ -

    [129] To bych nedelal, kdyby zmenili treba razeni men a napr. EURO by se z radku 5 presunulo na radek 8 tak by ti to nevyslo .. zkus to pres to pole, bude to univerzalnejsi

  • kuba -

    [128]jo dík, už jsem to vyřešil, sice ne přes pole, ale trošku kostrbatě přes číslo řádku měny

Statistika

  • Článků celkem: 12
  • Komentářů celkem: 27

Blogspot » PHP » Jak vytvořit PHP kalendář?

Jak vytvořit PHP kalendář?

Sobota, 12 .Ledna 2008, 12:01, prečteno 6580x

Potřebujete PHP kalendář? Hledal jsem na internetu a nacházel jsem příliš robustní třídy či velmi ošklivé kódy, které začátečník nemůže chápat. Napsal jsem vlastní kalendář, jehož kód je velmi krátký a myslím, že nikomu nebude dělat problémy.

<?php
// prvotni inicializace, nastavime aktualni cas,  mesic a rok
$date = time();
$day = date('d', $date);
$month = date('m', $date);
$year = date('Y', $date);

// pokud v GETu existuje mesic ci rok, tak "aktualni" mesic a rok je ten z URL
if ($_GET["year"]) $year = (int) $_GET["year"];
if ($_GET["month"]) $month = (int) $_GET["month"];

// pro dalsi zobrazeni potrebujeme prvni den v mesici, pocet dni v mesici ...
$first_day = mktime(0,0,0,$month, 1, $year);
$title = date('F', $first_day);
$day_of_week = date('D', $first_day);
$days_in_month = date('t', $first_day);


$prevY = $nextY = $year;
$prevM = $nextM = $month;

// nastaveni odkazu pro predchozi a nasledujici mesic / rok
if ($month - 1 < 1) { $prevM = 12; $prevY--;} else {$prevM = $month - 1;}; 
if ($month + 1 > 12){ $nextM = 1; $nextY++;} else {$nextM = $month + 1;};  

$prev = "<a href='?month=".($prevM)."&year=".($prevY)."'><<</a>";
$next = "<a href='?month=".($nextM)."&year=".($nextY)."'>>></a>";

// timto si vyplnime v kalendari prazdne bunky, 1 den v mesici a prvniho neni vzdy pondeli ...
$emptyTD = array("Mon" => 0, "Tue" => 1, "Wed" => 2, "Thu" => 3, "Thu" => 4, "Fri" => 5, "Sun" => 6);
$blank = $emptyTD[$day_of_week];

// vykresleni kalendare
echo "<table border=1 align=center id=calendar>";
echo "<tr><th>$prev</th><th colspan=5> $title $year </th><th>$next</th></tr>";
echo "<tr><td width=42>M</td><td width=42>T</td><td width=42>W</td><td width=42>T</td><td width=42>F</td><td width=42>S</td><td width=42>S</td></tr>";

$day_count = 1;

echo "<tr>";

// zde prave zjistime pocet prazdnych bunek pred 1 dnem v mesici 
while ( $blank > 0 )
{
  echo "<td></td>";
  $blank--;
  $day_count++;
}

$day_num = 1;


// veskere dny v kalendari
while ($day_num <= $days_in_month)
{
  if($day_num == $day)
  {
    echo "<td class='today'><b>$day_num</b></td>";
  }
  else
  {
    echo "<td class='days'>$day_num</td>";
  }

  $day_num++;
  $day_count++;
  
  if ($day_count > 7)
  {
    echo "</tr><tr>";
    $day_count = 1;
  }
}


// timto zajistime spravne zobrazeni kalendare a dopocitani prazdnych bunek
while ($day_count >1 && $day_count <=7)
{
  echo "<td> </td>";
  $day_count++;
}

echo "</tr></table>";
?>
Soubor ke stažení (kalendar.zip)

Hodnocení: Počet hlasů: 7

Komentáře

Pavel Kraus [1] -reagovat- 13.03. 00:16 194.228.201.---

No já tedy nevím, ale mě se zdá, ukazuje nějak divně né? A jak se nastavuje startday – jsme v čechách… :-(

Roman Janko [2] -reagovat- 13.03. 20:44 78.102.107.---

[1] Pavel Kraus Co se ti ukazuje divne? Jinak zahlavi dnu , na to staci jednoduche pole ne?

Přidat komentář

Nový vzkaz

© 2005 - 2008 RJWEBDESIGN, všechna práva vyhrazena.
Nabízíme: Tvorba www stránek
Kontakt: telefony +420 777 856 657 | E-mail: admin@rjwebdesign.net
Spolupracujeme: Aria Studio, MXART Partnerské weby: Pesonline.cz, EuroFotbal.cz, SpanelskyFotbal.cz

© 2008 RJWEBDESIGN