Translate Blog

20 Ocak 2015 Salı

Php İle Ayın Günlerini Takvim Gibi Listeleme / List days of month like a calender

Aşağıdaki kod bulunduğunuz aydaki takvimi size vermektedir. Takvim tarihleri barındırır. Gelişrirsem paylaşacağım.

//şu anki zamana göre bulunulan ayın ilk günü sayısal olarak alınır
$month_start = strtotime('first day of this month', time());

//bu ayın kaç gün çektiği sayısal bilgisi (30) cal_days_in_month(CAL_GREGORIAN, ay, yıl)
$aydaki_gun = cal_days_in_month(CAL_GREGORIAN, date('m', $month_start), date('Y', $month_start));

//date('N',tarih) bu bulunduğu haftanın kaçıncı gününe denk geldiği bilgisidir. Tarih pazar ise 1 pazartesi 2 salı 3 vb döner. Pazaartesi ilk gün olduğu için döngüyü 1den (pazartesi) başlattım. ayın ilk tarihi haftanın hangi gününden başlayacağı if ile belirlenmektedir. date('N', $month_start)==$i ye eşit olana kadar tarih yazılmaz yerine boş alanlar [00-00-0000] ekleniyor. Eşit olunca tarih yazılır ve break; ile for döngüsü kırılır.

for($i=1;$i<8;$i++){
if( date('N', $month_start)==$i){
$ilkhafta=$i;
break;
}else{
echo '<span style="text-decoration: line-through;">[00-00-0000]</span>     ';
}
}

//ayın kalan günleri de sütun sayısı 7 olana kadar yanyana echo ile yazdırılmakta. ilkhafta değişkeni ilk haftadaki günün kaçıncı gün olduğunu tutuyordu üstteki döngüde. bu sayının arttılıldığını görüyorsunuz her seferinde. Yani gün gün 1er artmakta. Ve 7ye her tam bölünmesinde bir alt satıra <br> tagı eklenerek geçilir. Her bir gün J ile sayılır ve Aydaki gün sayısına eşit olduğu zaman do while döngüsünden çıkılır.

$j=0;
do{
echo '['.date('d-m-Y', strtotime('+'.$j.' day', strtotime(date('d-m-Y', $month_start)))).']     ';
$j++;
if($ilkhafta % 7 == 0) echo '<br>';
$ilkhafta++;
}while($j<$aydaki_gun)




Kodların tamamı aşağıdadır


$month_start = strtotime('first day of this month', time());
$aydaki_gun = cal_days_in_month(CAL_GREGORIAN, date('m', $month_start), date('Y', $month_start));
for($i=1;$i<8;$i++){
if( date('N', $month_start)==$i){
$ilkhafta=$i;
break;
}else{
echo '<span style="text-decoration: line-through;">[00-00-0000]</span> ';
}
}
$j=0;
do{
echo '['.date('d-m-Y', strtotime('+'.$j.' day', strtotime(date('d-m-Y', $month_start)))).'] ';
$j++;
if($ilkhafta % 7 == 0) echo '<br>';
$ilkhafta++;
}while($j<$aydaki_gun)
Yorum Gönder