• 04-02-2014, 09:16:04
    #1
    Merhaba arkadaşlar,

    tarih işlemleri ile ilgili bir sorunum var çıkamadım işin içinden

    başlangıç ve bitiş tarihlerine göre bir tablo oluşturmam lazım. ama iki ve veya üç aylık bir periyod olduğu zaman sıkıntı yaşıyorum.


    ör:

    $baslangic='2014-01-27';
    $bitis = '2014-02-28';


    olursa

    şu şekilde bir tablo oluşturmam lazım







    ama kullanıcı şu şekilde seçerse

    $baslangic='2014-01-27';
    $bitis = '2014-03-09';


    şöylebir tablo oluşturmam lazım



    yani listelenecek olan tarih aralıklarının hangi aya ait olduğunu yukarıya yazdırmam lazım.


    bu konuda yardımcı olabilecek , tüm arkadaşlara şimdiden teşekkürler.
  • 04-02-2014, 09:34:14
    #2
    kaçıncı ay ve ay isimlerini iki farklı diziye atıp değiştirerek gösterebilirsin. aklıma en basit yol bu geldi.
  • 04-02-2014, 11:33:05
    #3
    function html_ver($b,$e) {
    	$aylar = array('','Ocak','Şubat','Mart','Nisan','Mayıs','Haziran','Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık');
    	$e=DATE('Y-m-d',strtotime($e.' +1 DAY'));
    	for($i=$b;$i!=$e;$i=DATE('Y-m-d',strtotime($i.' +1 DAY'))) {
    		$gunler[DATE('n',strtotime($i))][]= DATE('j',strtotime($i));	
    	}
    	foreach($gunler as $ay=>$gun) {
    		$html['ay'][] = '<td colspan="'.count($gun).'">'.$aylar[$ay].'</td>';
    		$html['gun'][] = '<td>'.implode('</td><td>',$gun).'</td>'; 
    	}
    	return '<table border="1"><tr>'.implode('',$html['ay']).'</tr><tr>'.implode('',$html['gun']).'</tr></table>';
    }
    
    
    $baslangic='2014-01-27';
    $bitis = '2014-03-18';
    
    echo html_ver($baslangic, $bitis);
    çok iyi değil ama işini görür
  • 04-02-2014, 18:27:28
    #4
    acidmax adlı üyeden alıntı: mesajı görüntüle
    function html_ver($b,$e) {
    	$aylar = array('','Ocak','Şubat','Mart','Nisan','Mayıs','Haziran','Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık');
    	$e=DATE('Y-m-d',strtotime($e.' +1 DAY'));
    	for($i=$b;$i!=$e;$i=DATE('Y-m-d',strtotime($i.' +1 DAY'))) {
    		$gunler[DATE('n',strtotime($i))][]= DATE('j',strtotime($i));	
    	}
    	foreach($gunler as $ay=>$gun) {
    		$html['ay'][] = '<td colspan="'.count($gun).'">'.$aylar[$ay].'</td>';
    		$html['gun'][] = '<td>'.implode('</td><td>',$gun).'</td>'; 
    	}
    	return '<table border="1"><tr>'.implode('',$html['ay']).'</tr><tr>'.implode('',$html['gun']).'</tr></table>';
    }
    
    
    $baslangic='2014-01-27';
    $bitis = '2014-03-18';
    
    echo html_ver($baslangic, $bitis);
    çok iyi değil ama işini görür

    Ustam çok teşekkürler

    Gündüz fırsatım olmadı , şimdi deniyorum tam yapmaya çalıştığım gibi