İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Tarih Formatlama sorun

wizz

0
İyinet Üyesi
Katılım
26 Ekim 2007
Mesajlar
136
Reaction score
0
meraba arkadaşlar kodda küçük bir hata var ama göremedim bit türlü. Döngüde bu aydan başlayıp 5 ayı yazması gerekiyor. bulunan ayın kaç çektiği vs. işlemleri yapıyorum. Hata çıktıda döngünün ilk ve son çıkan eleman yazılıyor. örneğin Haziransa ilki sonra diğerlerini yazmıyor son eleman Ekim yazıyır :) şimdiden teşekkürler.

<?php
function tarih_format($tarih)// date(y-m-d) h:i:s)
{

$tarihDizi["gunler"]=array("Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi",);
$tarihDizi["aylar"] = array ("01" => "Ocak", "02" => "Şubat", "03" => "Mart", "04" => "Nisan", "05" => "Mayıs", "06" => "Haziran",
"07" => "Temmuz", "08" => "Ağustos", "09" => "Eylül", "10" => "Ekim", "11" => "Kasım", "12" => "Aralık");

$zamanExp = explode (" ",$tarih);
$tarihExp = explode ("-",$zamanExp[0]);

$tarihFormat["ay"] = $tarihDizi["aylar"][$tarihExp[1]];//Temmuz
$tarihFormat["haftanin_gunu"] = $tarihDizi["gunler"][$haftaninGunu];//Pazartesi

//formatlar
$tarihFormat["format1"] = $tarihExp[2]."-".$tarihExp[1]."-".$tarihExp[0];//16-07-2007
$tarihFormat["format3"] = $tarihExp[2]." ".$tarihFormat["ay"]." ".$tarihExp[0];//16 Temmuz 2007

return $tarihFormat;
}


$gun=date("d");
$ay=date("m");
$yil=date("Y");

for($i=0;$i<5;$i++)
{
$tarih=date("$yil-$ay-$gun H:i:s");
$formatliTarih = tarih_format($tarih);
echo $formatliTarih["ay"];


$lastay=($ay)%12+1;
$lastday=date("d-m-Y",mktime(0, 0, 0, $lastay, 0, $yil));

echo "Tarih Baslangic :".date("01-$ay-$yil"). "Tarih Bitis:".$lastday;
echo $formatliTarih["ay"]." ".$yil." <br>";
$ay=$ay+1;
echo $ay."<br>";

}
?>
 

wizz

0
İyinet Üyesi
Katılım
26 Ekim 2007
Mesajlar
136
Reaction score
0
sorun çözüldü arkadaşlar teşekkürler.
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Yukarıda yaptığın işi o kadar koda gerek olmadan yapabilirsin.

PHP:
setlocale(LC_ALL, 'turkish');
$time = time();

        for ($i=0; $i<=4; $i++) {

                if ($i==0) $day = date("j");
                else $time += 60*60*24*30; /* arti 30 gun */

        echo $day.' '.strftime("%B %Y",$time).'<br />';  /* gun icin %A */
        }
 

wizz

0
İyinet Üyesi
Katılım
26 Ekim 2007
Mesajlar
136
Reaction score
0
Teşekkürler Angelo yanlız burda heray 30 çekme ihtimali yok 31 Ocak 2010'a 30 gün eklediğimizde mart ayına geçiyor buda benim için problem olur.
setlocale(LC_ALL, 'turkish');
Türkçe versiyonunu bilmiyordum öğrenmiş oldum:)
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Haklısın onu ilk etapta düşünmedim.
Şöyle birşey de var, direk 1 ay atıyor.
+1 month diye timestamp i ilerletirsin her adımda, 30 yerine.

http://www.php.net/strtotime

else $time = strtotime("+1 month",$time); /* arti 1 ay direk */
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst