coder16 adlı üyeden alıntı: mesajı görüntüle
Canım sıkkın değil güzel kardeşim, sana yardımcı olalım diyorum ama yardım edebileceğim birşey göremiyorum.
Kod yazmadığına göre demek ki bizden mantık yönünden cevap bekliyorsun.
Varsayım üzerine gidersek, gece saat 24:00 den sonra yeni güne geçtiğine göre geçmiş zamana rezervasyon alamaman çok normal, doğrusu da bu zaten.
Diğer sorun saat 19:00 olmasına rağmen 12-19 arası rezervasyon alınabiliyorsa burada yazmış olduğun kodun hatalı olduğunu düşünüyorum, PHP de tarih karşılaştırmasında string ve date() fonksiyonu istediğin sonucu almamana sebep olur. Veritabanındaki tarih ile şuandaki tarih karşılaştırılmalarında strtotime() veya mktime() kullanmalısın.
$tarih = "2017-12-19 19:00:00"; // string türünde veri $simdiki_zaman = date('Y-m-d'); // date() türünde veri $tarih = strtotime($tarih); $simdiki_zaman = strtotime($simdiki_zaman); if($tarih > $simdiki_zaman) { // rezervasyon alınabilir } else { // rezervasyon alınamaz. }
 <?
        $kacinci = getdate();
        $kacinci = $kacinci["wday"];
        if ($kacinci == 0){ $kacinci = 7; }
        if ($i != 1){
        $kacinci = $kacinci - 1;
        $tarih = date("Y-m-d");
        $tarih = date("Y-m-d", strtotime("-$kacinci days", strtotime($tarih)));    
        } else {
        $tarih = date("Y-m-d");    
        }
        $araliklar = array("12:00","13:00","14:00","15:00","16:00","17:00","18:00","19:00","20:00","21:00","22:00","23:00","00:00","01:00","02:00");
        foreach ($araliklar as $a){
        echo '<tr>';
        for ($i=0; $i<7; $i++){
        $t = date("Y-m-d", strtotime("+$i days", strtotime($tarih)));
        $sql = $db ->query("SELECT * FROM randevular WHERE tarih = '{$t}' and saat = '$a'");
        if ($t < date("Y-m-d")){
        echo '<td class="dolu" id="'.$t.' '.$a.'">Geçmiş<br>'.$a.'</td>';            
        } else {
        $sql = $db ->query("SELECT * FROM randevular WHERE tarih = '{$t}' and saat = '$a'");
        if ($sql->rowCount() == 0){
        echo '<td class="uygun" id="'.$t.' '.$a.'">Uygun<br>'.$a.'</td>';    
        } else {
        echo '<td class="degil" id="'.$t.' '.$a.'">Dolu<br>'.$a.'</td>';    
        }
        }
        }
        echo '</tr>';
        }
        ?>
Php kodum yukarıda yalnız yapamadım gerekli düzenlemeleri yapınca bu gün bugunu de geçmiş olarak görüyor.



Merhabalar,

Sorunu çözemedim yardımcı olabilecek var mı ?