PHP de Takvim Oluşturmak
|
#2522 |
|
|
Kaan
User is:
Posts: 2772
Meslek: Serbest Meslek
Age: 43
|
PHP de Takvim Olu?turmak ?st k?s?mda ?nceki ve sonraki aylar?n linkleri, altta ise takvimin kendisi bulunmaktad?r. Se?ilmi? ay ismini takip eden y?l ve ay?n g?nlerini tablo ?eklinde g?stermektedir. Geli?tirmenize yard?mc? olmas? i?in iyi bir PHP d?zenleyicisine ihtiya? duyabilir ya da yeterince deneyimli iseniz Notepad gibi kolay anla??l?r bir metin d?zenleyici kullanabilirsiniz. ?ncelikle parametrelerimizi nas?l ta??yaca??m?za karar vermemiz gerekmektedir. De?erleri ?hidden? input alan? i?inde html kod olarak veya URL yoluyla ta??yabiliriz. Bu yaz?da ikinci y?ntemi kullanaca??z. Biri ?ay? i?in di?eri ?y?l? i?in olan iki ayr? parametreye ihtiya? duyaca??z. Ayr?ca ay isimlerinin oldu?u bir diziye ihtiyac?m?z var. Kod: $aylar = Array("Ocak", "?ubat", "Mart", "Nisan", "May?s", "Haziran", "Temmuz", "A?ustos", "Eyl?l", "Ekim", "Kas?m", "Aral?k"); ?lk olarak parametrelerimize de?er verilmi? mi diye kontrol etmemiz gerekiyor. E?er de?er verilmemi? ise biz kendimiz ?uanki ay ve y?l de?erlerini vermeliyiz. Kod: if (!isset($_REQUEST["ay"])) $_REQUEST["ay"] = date("n"); if (!isset($_REQUEST["yil"])) $_REQUEST["yil"] = date("Y"); Takvimimiz i?inde kulland???m?z di?er de?i?kenlerinde de?erlerini atamal?y?z. Kod: $ay = $_REQUEST["ay"]; $yil = $_REQUEST["yil"]; $onceki_yil = $yil; $sonraki_yil = $yil; $onceki_ay = $ay-1; $sonraki_ay = $ay+1; if ($onceki_ay == 0 ) { $onceki_ay = 12; $onceki_yil = $yil - 1; } if ($sonraki_ay == 13 ) { $sonraki_ay = 1; $sonraki_yil = $yil + 1; } $ay ve $yil de?i?kenleri takvimdeki ?uan ki ay ve y?l? g?stermek i?in kullan?lmakta. ?<<? ve ?>>? linkleri kar??l??? i?in parametrelere ihtiyac?m?z var. $onceki_yil ve $sonraki_yil ?imdiki i?in ayarl?yoruz. Daha sonra bunu de?i?tirebiliriz, ?imdilik bu yeterli. Ayr?ca sonraki ve ?nceki ay parametreleri i?inde s?ras?yla 1 ekleyerek ve ??kararak de?erlerini atayal?m. ?imdi parametrelerimizin limitin alt?na veya ?st?ne ??k?p ??kmad???n? kontrol etmeliyiz. Bir y?lda 12 ay oldu?una g?re e?er parametre 13?e geldiyse di?er bir y?la ge?mi?iz demektir ve parametremizi tekrar 1?e (Ocak) getirmeliyiz ve y?l ?yil? parametremize 1 eklemeliyiz. ?te yandan, biz zamanda geriye d?nd???m?zde ve ?ay? parametremiz 0?a gider. Dolay?s?yla ?y?l? parametremizi 1 azaltmal?y?z ve ay parametresini 12 (Aral?k) olarak ayarlamal?y?z. ?imdi ?nceki ve sonraki aylar i?in linklerimizi ayarlad???m?za g?re takvimin nas?l yap?ld???na d?nebiliriz. Takvimimizi yerle?tirece?imiz bir tablo yaratal?m. Sonra tabloya g?nlerin belirtildi?i bir sat?r ekleyelim. Ayr?ca ilk sat?r ay?n ismi ve y?l? i?ermektedir. Ama diziler s?f?rdan ba?lad?klar?ndan do?ru ismi elde etmek i?in ?ay? parametresinin de?erinden 1 ??karmam?z gerekir. Kod: <table width="200"> <tr> <td align="center"> <table width="100%" border="0" cellpadding="2" cellspacing="2"> <tr align="center"> <td colspan="7" bgcolor="#999999"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="20%" align="left"> <a href="<?php echo $_SERVER["PHP_SELF"] . "?ay=". $onceki_ay . "&yil=" . $onceki_yil; ?>" style="color:#FFFFFF"><<</a></a></a></td> <td align="center" style="color:#FFFFFF"><strong><?php echo $aylar[$ay-1].' '.$yil; ?></strong></td> <td width="20%" align="right"><a href="<?php echo $_SERVER["PHP_SELF"] . "?ay=". $sonraki_ay . "&yil=" . $sonraki_yil; ?>" style="color:#FFFFFF">>></a> </td> </tr> </table> </td> </tr> <tr> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>Pa</strong></td> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>Pt</strong></td> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>Sa</strong></td> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>?a</strong></td> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>Pe</strong></td> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>Cu</strong></td> <td align="center" bgcolor="#999999" style="color:#FFFFFF"><strong>Ct</strong></td> </tr> ?imdi takvimimiz i?in d?zg?n tarihleri ayarlayal?m. Tarihlerin say? kar??l?klar?n? girerek bu i?i kolayca halledebiliriz. Se?ili ay?n g?nlerinin say?s?n? ve ay?n ilk g?n?n?n say?sal kar??l?klar?n? alaca??z (Pazar i?in 0 olmak ?zere 6 Cumartesi) . B?t?n bu fonksiyonlar php man?elinde a??klanmaktad?r. Tarihleri ??karacak olan d?ng?m?z s?f?rda ba?l?yor ??nk? haftan?n g?nleri 0 (pazar) dan ba?l?yor. Ay?n ilk g?n?n?n dengi art? g?nlerin say?s? boyunca d?ng? yapar. Her hafta i?in yeni bir s?ra yazd?rmal?y?z. Bir haftadaki g?nlerin say?s? olan 7′yi mod kabul ediyoruz ve say?lar?n bu mod sisteminde de?erlerini kontrol ediyoruz. E?er s?f?ra e?itse haftan?n ba?lang?c? oluyor ve a??k s?ra tagi <tr> yazd?r?yoruz, e?er haftan?n sonu ise 6; bu hafta i?in kapal? s?ra tagi </tr> yazd?r?yoruz. Yapmam?z gereken yazd?rd???m?z g?n?n cumartesiden ?nce olup olmad???n? kontrol etmek. Bu durumda bo? tag yazd?r?yoruz. Aksi durumda tarihi yazd?rmam?z gerek. Bunu cumartesiyi ??kararak yap?yoruz. Bir eklemek gerekiyor ??nk? tarihlerin 0 dan ba?lamas?n? istemeyiz. Kod: <?php $zaman = mktime(0,0,0,$ay,1,$yil); $maxgun = date("t",$zaman); $buay = getdate ($zaman); $ilkgun = $buay['wday']; for ($i=0; $i<($maxgun+$ilkgun); $i++) { if(($i % 7) == 0 ) echo "<tr>\n"; if($i < $ilkgun) echo "<td style=\"color:#FFFFFF\"></td>\n"; else echo "<td align='center' valign='middle' height='20px' style=\"color:#FFFFFF\">". ($i - $ilkgun + 1) . "</td>\n"; if(($i % 7) == 6 ) echo "</tr>\n"; } ?> ?imdi son ad?m? yaz?p takvimi bitiriyoruz. </table> </td> </tr> </table> |
Emlak, Oto Galeri, Rent A Car, ?iir, Edebiyat Script Sipari?lerinizi Verebilirsiniz. Detaylar ??in: kaan@ntka.org Seditio 170 ?ndir Capte M?zik ?ndir Seditio Toolbar ?ndir |













