Yksinkertainen yhden kuukauden kerrallaan (voi toki laittaa monta vierekkäin) PHP-kalenteri. Näyttää oletuksena nykyisen vuoden ja kuukauden, mutta vaihtaminen onnistuu. Parantamisen varaa on, mutta kelvannee silti pohjaksi.
<html><body> <?php $kuukaudet=array("tammikuu","helmikuu","maaliskuu","huhtikuu","toukokuu","kesäkuu", "heinäkuu","elokuu","syyskuu","lokakuu","marraskuu","joulukuu"); function luokalenteri($vuosi,$kuukausi) { global $kuukaudet; echo "<table border width=210><tr><td>"; echo "<center>".$vuosi." - ".$kuukaudet[$kuukausi-1]."</center>"; echo "</td></tr><tr>"; echo "<table border width=210>"; for ($i=0;$i<5;$i++) { echo "<tr>"; for ($j=0;$j<7;$j++) { $paiva=" "; if ($alku<>0) { $alku++; if ($alku>intval(date("t",mktime(0,0,0,$kuukausi,1,$vuosi)))) { $loppu=1; } else { $paiva=$alku; } } else { if (intval(date("w",mktime(0,0,0,$kuukausi,1,$vuosi)))==$j+1) { $paiva="1"; $alku=1; } } if ($loppu==1){$paiva=" ";} if ($j==6){$paiva="<font color='red'>".$paiva."</font>";} if ($alku==intval(date("d")) && $kuukausi==intval(date("m")) && $vuosi==intval(date("Y"))) { echo "<td bgcolor='blue'>".$paiva."</td>"; } else { echo "<td>".$paiva."</td>"; } } echo "</tr>"; } echo "</table>"; echo "</tr></td></table>"; } //kalenterin näyttäminen, ensimmäinen parametri vuosi, toinen kuukausi luokalenteri(intval(date("Y")),intval(date("n"))); ?> </body></html>
Äh, sisennykset katosivat!
Mitäpä sitten kun tulee syyskuu ;)
Viisi riviä päiviä ei riitä...
Ei tullut testattua niin pitkälle...:)
Juu aloin tosta kehitellä eteenpäin ja törmäsin tollaseen. No taitaa tää syyskuu olla aika poikkeus, näkyy muuallakin kalenterit tekevän jotain kepposia :)
Äkkiseltään silmäiltynä aika monimutkainen.... joten tein tämän.
<? $kuukausinyt = array(Epäkuu, Tammikuu, Helmikuu, Maaliskuu, Huhtikuu, Toukokuu, Kesäkuu, Heinäkuu, Elokuu, Syyskuu, Lokakuu, Marraskuu, Joulukuu); $ensimmainen = date("w", mktime(0,0,0,date("n"),1,date("Y"))); $kuukaudessa = date("t"); if ($ensimmainen == 0) { $ensimmainen = 7; } $viikkoja = (($ensimmainen+$kuukaudessa-1)/7); $kuu = $kuukausinyt[date("n")]; $vuosi = date("Y"); echo "<PRE><FONT SIZE='-1'><B>$kuu $vuosi</B>\n"; echo "Ma Ti Ke To Pe La Su\n"; $k=1; for ($i=0; $i<$viikkoja; $i++) { for ($j=1; $j<=7; $j++) { if ($j<$ensimmainen && $i < 1) { echo " "; } else if ($k <= $kuukaudessa) { if ($k == date("j")) { if($k<10) { echo "<FONT COLOR='Red'>$k</FONT> "; $k++; } else { echo "<FONT COLOR='Red'>$k</FONT>"; $k++; } } else { if($k<10) { echo "$k "; $k++; } else { echo "$k"; $k++; } } } else { echo " "; } if ($j!=7) { echo " "; } } echo "\n"; } echo "</FONT></PRE>"; ?>
Joo, noniin, ahaaa, tässähän olikin hyvä vinkki ^_^ helppo asentaa ja muunnella.... ihan upeeta!
Ihan kätevä. :)
Tässä on minun GD kalenterini:
(Anteeksi sotkuinen koodi)
<?php ########################### # PHP KALENTERI # # by: # # DrKafka # ########################### header("Content-type: image/png"); $kuva = imagecreate(147,150); $valkoinen = imagecolorallocate($kuva, 255, 255, 255); $musta = imagecolorallocate($kuva,0,0,0); $sininen = imagecolorallocate($kuva,0,0,255); $tummvihr = imagecolorallocate($kuva,0,128,0); imagerectangle($kuva, 0,0,147-1,150-1, $musta); $alkux = 3; $x = $alkux; $y = 20; $ii = 0; $max = 7; $iii = 0; päiviä $m = date("m"); if($m == 01){$lop = 31; $mo = 'Tammikuu';} elseif($m == 02){$lop = 29; $mo = 'Helmikuu';} elseif($m == 03){$lop = 31; $mo = 'Maaliskuu';} elseif($m == 04){$lop = 30; $mo = 'Huhtikuu';} elseif($m == 05){$lop = 31; $mo = 'Toukokuu';} elseif($m == 06){$lop = 30; $mo = 'Kesäkuu';} elseif($m == 07){$lop = 31; $mo = 'Heinäkuu';} elseif($m == 08){$lop = 31; $mo = 'Elokuu';} elseif($m == 09){$lop = 30; $mo = 'Syyskuu';} elseif($m == 10){$lop = 31; $mo = 'Lokakuu';} elseif($m == 11){$lop = 30; $mo = 'Marraskuu';} elseif($m == 12){$lop = 31; $mo = 'Joulukuu';} $d = date("d"); $moalk = JDDayOfWeek(unixtojd(mktime(0,0,0,date("m"),1,date("Y"))-1),0); imagestring($kuva, 3, 3, 1, $mo, $musta); $x = $alkux + $moalk * 20; $maxx = 140; for($i = $moalk; $i < $lop+$moalk; $i++) { $ii++; $iii++; if($d == $iii) { imagerectangle($kuva, $x, $y, $x+20, $y+20, $musta); imagefill($kuva, $x+1, $y+1, $tummvihr); } else { imagerectangle($kuva, $x, $y, $x+20, $y+20, $musta); } $x = $x+20; if($d == $iii) { imagestring($kuva, 2, $x-15, $y+3, $iii, $valkoinen); } else { imagestring($kuva, 2, $x-15, $y+3, $iii, $sininen); } if($x > $maxx-1){$y=$y+20; $x=$alkux;$ii = 0;} } imagestring($kuva, 2, 9, 130, date("H:i:s :: d.m.Y"), $musta); imagepng($kuva); ?>
ihan hyvä kafka, mutta olet unohtanut riviltä 21 ilmeisesti
kommentoinnin
(päiviä => //päiviä)
Demo Antin kalenteriin löytyy täältä:
http://koti.mbnet.fi/ollins/muuta/testi/
Demo DrKafkan kuvakalenteriin löytyy täältä:
http://koti.mbnet.fi/ollins/muuta/testi/
Aihe on jo aika vanha, joten et voi enää vastata siihen.