• 14-12-2017, 11:52:32
    #1
    Merhabalar,

    Resimde göründüğü gibi günü geçen rezervasyon saatleri otomatik kapanıyor ancak günlük kapanıyor. Saat 12:00 daki rezervasyon saati geçince kapanması gerek. Yardımcı olurmusunuz ?

    https://i.hizliresim.com/jQoXVj.png
  • 14-12-2017, 19:10:20
    #2
    12:00 form saati bu olsun
    13:00 mevcut saat bu olsun
    Iki zaman arasinda ki farki karsilastirip kontrol ettirirsin eger mevcut zamandan kücük ise saati dolan randevu diye kapatirsin.mantik olarak bu sekilde.
  • 19-12-2017, 11:56:01
    #3
    Konu ile alakalı yardımcı olabilecek var mıdır ?
  • 19-12-2017, 12:03:35
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    By_MiCRoP adlı üyeden alıntı: mesajı görüntüle
    Konu ile alakalı yardımcı olabilecek var mıdır ?
    Yardımcı olabilecek birileri elbette var, sen sorunu zahmet edip detaylı yazarsan, biri de çıkar sana yardımcı olur.
    Tamam ben sana yardımcı olayım ama nasıl olayım ?

    Sorduğun sorudan hiç bişey anlamadım, bi resim eklemişsin ama hangi tarih ve saate göre o resimi yorumlayacağız.
    Yazmış olduğun kodu inceleyeyim diyeceğim ama ortada kod falan yok.
    Velhasıl, sen biraz zahmet etmezsen bizler nasıl yardımcı olacağız sana ?
  • 19-12-2017, 12:33:46
    #5
    cronjobla halledebilirsiniz. hosting panelinizde cronjobu aktif edin saat başı çalışacak şekilde ayarlayın cronjob her saat başı rezervasyon sayfanızı yeniler.
  • 19-12-2017, 12:50:56
    #6
    coder16 adlı üyeden alıntı: mesajı görüntüle
    Yardımcı olabilecek birileri elbette var, sen sorunu zahmet edip detaylı yazarsan, biri de çıkar sana yardımcı olur.
    Tamam ben sana yardımcı olayım ama nasıl olayım ?

    Sorduğun sorudan hiç bişey anlamadım, bi resim eklemişsin ama hangi tarih ve saate göre o resimi yorumlayacağız.
    Yazmış olduğun kodu inceleyeyim diyeceğim ama ortada kod falan yok.
    Velhasıl, sen biraz zahmet etmezsen bizler nasıl yardımcı olacağız sana ?
    Hocam bugün canınız çok sıkkın galiba, mesajıma tepkiniz çok iyi. Haklısınız detaylı bilgi vermedim ama ilk mesaj da kendimce açıklayıcı gördüm.

    Sorunun detaylı anlatmak istersek; rezervasyon formu öğlen saat 12'den gece 02'ye kadar rezervasyon alıyor. Ancak şöyle durum söz konusu saat gece 12 olduğunda yeni bir güne geçtiğimiz de otomatik geçmiş gün oluyor ve kapatıyor. Gece:01 ve 02 saatleride arada kapanmış oluyor. Ayrıca başka bir husus ise şuanki saatimiz akşam 19:00 olduğunu varsayalım, öğlen 12'den akşam 19'a kadar olan saatler hâlâ açık ve rezervasyon alınabiliyor. Bu durumu ortadan kaldırmak istiyorum.

    Teşekkürler.
  • 19-12-2017, 13:13:18
    #7
    By_MiCRoP adlı üyeden alıntı: mesajı görüntüle
    Hocam bugün canınız çok sıkkın galiba, mesajıma tepkiniz çok iyi. Haklısınız detaylı bilgi vermedim ama ilk mesaj da kendimce açıklayıcı gördüm.

    Sorunun detaylı anlatmak istersek; rezervasyon formu öğlen saat 12'den gece 02'ye kadar rezervasyon alıyor. Ancak şöyle durum söz konusu saat gece 12 olduğunda yeni bir güne geçtiğimiz de otomatik geçmiş gün oluyor ve kapatıyor. Gece:01 ve 02 saatleride arada kapanmış oluyor. Ayrıca başka bir husus ise şuanki saatimiz akşam 19:00 olduğunu varsayalım, öğlen 12'den akşam 19'a kadar olan saatler hâlâ açık ve rezervasyon alınabiliyor. Bu durumu ortadan kaldırmak istiyorum.

    Teşekkürler.
    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 H:i:s'); // date() türünde veri
       $tarih = strtotime($tarih);
     $simdiki_zaman = strtotime($simdiki_zaman);
      if($tarih > $simdiki_zaman) {
       // rezervasyon alınabilir
    } else {
      // rezervasyon alınamaz.
    }
  • 19-12-2017, 14:02:24
    #8
    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ı ?