• 10-07-2019, 23:09:50
    #1
    1. Dönem 2019-08-01 BAŞLANGIÇ
    1. Dönem 2019-01-31 BİTİŞ

    2. Dönem 2019-02-01 BAŞLANGIÇ
    2. Dönem 2019-07-31 BİTİŞ


    iyi forumlar arkadaşlar kolay gelsin.
    bir sorum olucaktı.
    if ile yapmaya çalıştım sonuc alamaıdm yada dogru kullanamadım.
    sonuç olarak girilen tarihe göre tarih aralığında 1.Dönemdeyiz yada 2. Dönemdeyiz yazısını yazdırmak istiyorum. bunu nasıl başarabilirim. yardımcı olanlara şimdiden teşekkür ederim.
  • 10-07-2019, 23:13:31
    #2
    Bana sorarsan en garanti yöntem strtotime() ile unix zamana çevirip daha sonra çıkan saniyeleri karşılaştırmak.
  • 10-07-2019, 23:35:01
    #3
    $bugun= date('Y-m-d');
    $birincidonembaslangic= date('Y-m-d', '2019-08-01');
    $birincidonembitis= date('Y-m-d', '2019-01-31');
    
    if ($bugun < $birincidonembaslangic && $bugun > $birincidonembitis)
    {
    echo "1.Dönemdeyiz";
    }
    
    $ikincidonembaslangic= date('Y-m-d', '2019-02-01');
    $ikincidonembitis= date('Y-m-d', '2019-07-31');
    
    if ($bugun < $ikincidonembaslangic && $bugun > $ikincidonembitis)
    {
    echo "2.Dönemdeyiz";
    }
  • 10-07-2019, 23:40:44
    #4
    <?php
    date_default_timezone_set('Europe/Istanbul');
    function test($start, $son, $cevap){
    $begin = new DateTime($start);
    $end = new DateTime($son);
    $end = $end->modify('+1 day');
    $interval = new DateInterval('P1D');
    $daterange = new DatePeriod($begin, $interval ,$end);
    foreach($daterange as $date){
    if($date->format("Y.m.d") == date('Y.m.d')){
    return $cevap;
    }
    }
    }
    $Donem1 = test('2019-07-31','2019-08-01','1. Dönemdesiniz');
    $Donem2 = test('2019-02-01','2019-07-31','2. Dönemdesiniz');
    
    if($Donem1 != Null) { echo '1. Dönemdesiniz'; }
    elseif($Donem2 != Null) { echo '2. Dönemdesiniz'; }
    else{ echo 'Dönemsizsiniz :D'; }
    Mantıken böyle heralde

    Edit: if koşulunuda ekledim gene iyisin
  • 10-07-2019, 23:47:02
    #5
    Buyurun bu da düz mantık

    date_default_timezone_set('Europe/Istanbul');
    $gelentarih = strtotime($_GET["tarih"]);
    $tarih1 = "2018-08-01";
    $tarih1 = strtotime($tarih1);
    $tarih11 = "2019-01-31";
    $tarih11 = strtotime($tarih11);
    $tarih2 = "2019-02-01";
    $tarih2 = strtotime($tarih2);
    $tarih22 = "2019-07-31";
    $tarih22 = strtotime($tarih22);
    if($gelentarih>=$tarih1 && $gelentarih<=$tarih11){echo "1. dönem";}elseif($gelentarih>=$tarih2 && $gelentarih<=$tarih22){echo "2. dönem";}
  • 10-07-2019, 23:53:16
    #6
    KadirKAYA adlı üyeden alıntı: mesajı görüntüle
    Buyurun bu da düz mantık

    date_default_timezone_set('Europe/Istanbul');
    $gelentarih = strtotime($_GET["tarih"]);
    $tarih1 = "2018-08-01";
    $tarih1 = strtotime($tarih1);
    $tarih11 = "2019-01-31";
    $tarih11 = strtotime($tarih11);
    $tarih2 = "2019-02-01";
    $tarih2 = strtotime($tarih2);
    $tarih22 = "2019-07-31";
    $tarih22 = strtotime($tarih22);
    if($gelentarih>=$tarih1 && $gelentarih<=$tarih11){echo "1. dönem";}elseif($gelentarih>=$tarih2 && $gelentarih<=$tarih22){echo "2. dönem";}
    Hocam boş dönderiyor test ettin mi ?
  • 11-07-2019, 00:44:47
    #7
    Timestamp kullan
  • 11-07-2019, 01:15:55
    #8
    XAWeb adlı üyeden alıntı: mesajı görüntüle
    Hocam boş dönderiyor test ettin mi ?
    Test ettim hocam, ?tarih=XXXX-XX-XX şeklinde get ile veri girişi olduğunda sonucu gösteriyor. Tabi ki baz alınan değerlerin dışında bir veri gelirse boş döndürüyor.
  • 11-07-2019, 01:18:43
    #9
    çok teşekkür ediyorum ilginiz için yardımlarınızla kodlar sorunsuz çalışıyor