• 01-05-2013, 17:28:25
    #19
    Üyeliği durduruldu
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Sen şimdi tam olarak veritabanında mesela 3 saat geçen sonuçları mı görüntülemek istiyorsun. yoksa kişi dükkan kiraladıda O an + 3 saat sonrasının sonucunu ekrana mı basmak istiyorsun.
    Sorunu tam olarak kimse anlamamış galiba benim gibi.
    Yok hocam öyle değil şimdik normalde bir tarihte dükkan kiralık zamanın sonlanması ve başka birisinin alabilmesi lazım ama tarih sonlanmıyor. Devamlı günümüzün tarihini veya geçmiş tarih veriyor.


    EkolWeb adlı üyeden alıntı: mesajı görüntüle
    Basit mantıkta bir kontrol yapmaya çalışıyorsun galiba? Dükkanın kiraya girdiği tarih saat ile o an ki tarih saati karşılaştırıp eğer eşitse durumunu tekrar kiralanabilir yapmaya mı çalışıyorsun? Çalışan bir örnek vs varsa daha iyi anlarız ne yapmak istediğini.
    02.06.2013 Tarihinde kiralanan bir dükkanın 02.13.2013 tarihinde son bulmasını ve başka birisinin kiralamasını sağlamak istiyorum.

    ufukt51 adlı üyeden alıntı: mesajı görüntüle
    arkadaş sanırım daha önceden kira bitiş tarihini belirleyip veritabanına timestamp olarak girmiş. tahminim sunucusunda gmt sorunu oldugu için +3 şeklinde saat farkını hesaplıyor, bu kısımdan emin değilim ama, ekrana tarihin türkçe olarak yansıması içinde fonk. yazmış.

    ister "putenv("TZ=Europe/Istanbul");" şeklinde yerel saati kullanabilirsin server yerel saati yerine. istersen $saatfa = 3; $cokk2 = ($saatfa*3600)+$userdb; şeklinde fonk. ile yapabilirsin hangisi kullanışlı gelirse sana. $userdb="1307219313"; saati bu şekilde aldım veritabanı elimde olmadığı için sen kendine göre düzenleme yaparsın dinamik değişkenlerle mysql query lerle vs.Bu fonk. function gun_tarih($tarih){ daha kullanışlı geldi senin yazdığından. umarım işine yarar.
     <td colspan="5" align="center" class="subTitle"><font color=green><p>Dükkanın kiralık zamanı " <?php
    
    //putenv("TZ=Europe/Istanbul");
    $userdb="1307219313";
    $saatfa = 3;
    $cokk2 = ($saatfa*3600)+$userdb;
    function gun_tarih($tarih){
    $aylar = array('','Ocak','Şubat','Mart','Nisan','Mayıs','Haziran','Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık');
    $gunler = array('Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi');
    $yaz = date('j', $tarih).' '.$aylar[date('n', $tarih)].' '.date('Y',  $tarih).' '.$gunler[date('w', $tarih)].' '.date('H:i:s', $tarih);
    return $yaz;
    }
    echo "".gun_tarih($cokk2).""; ?> "
    
    tarihinde sona ericektir.</p></font>  </td>
          </tr>





    Öncelikle ilginizden dolayı teşekkür ederim,

    Hocam yapmak istediğim şey bir dükkan kiraladınız 7 günlük bir kontratınız var bu kontrat bittiginde dükkan sizden alınacak ve bir başkası dükkanı kiralıyabilecek. Dükkanı 1 ay içinde sadece 1 kez kiralama hakkına sahip olacaksınız amaç bu. Yani xx.xx.xxxx tarihinde dükkan kontratınız son'a erecektir demesi ama devamlı hangi gündeysek o zamanın tarihini veriyor.



  • 02-05-2013, 10:26:10
    #20
    Üyeliği durduruldu
    Sıkıntı aynen devam ediyor günceldir.
  • 02-05-2013, 18:05:20
    #21
    Bu işi farklı yollardan yapabilirsin. Bu yolların en kolaylarından birinin mantığı şu:

    Önce kişinin bilgilerini alırken dükkanın ilk açıldığı yani ilk kayıt zamanını db ye timestamp olarak girerken dükkan bitiş tarihinide gir database içine.
    yeni bir hücre alanı daha oluştur veritabanına ve bitiş zamanınıda gir içine.

    Dükkan ilk açılış ve Dükkan Kapanış datası olarak şu şekilde kullan.
    $ilk_kayit = time();  
    $kayit_bitisi = strtotime('+7 days', $ilk_kayit);

    Cpanel tarzı bir panelin varsa bir cron oluştur.
    her 10 dakikada 1 çalıştırarak süresi geçen dükkanları otomatik kapatırsın.

    cron.php gibi bişey hazırla içine şu tarz bir kod ekledin mi tamamdır:

    $su_an=time();  
    
    if ($su_an>=$kayit_bitisi)
    {
    SQL güncellemesi ile dükkan kayıtlarını delete yaptırt. yada UPDATE dukkan_aktif=0 yaptırt
    }
    • BoranKARADENIZ
    BoranKARADENIZ bunu beğendi.
    1 kişi bunu beğendi.
  • 03-05-2013, 10:23:39
    #22
    Daha sonra kayit girişi yapıldıktan sonrada $kayit_bitisi verisini database'den çektirip ekrana bastırabilirsin şu şekilde.


    $fark=$kayit_bitisi-$su_an;
    
    $fark_yil   = floor($fark / (365*60*60*24));
    $fark_ay  = floor(($fark - $fark_yil * 365*60*60*24) / (30*60*60*24));
    $fark_gun    = floor(($fark - $fark_yil * 365*60*60*24 - $fark_ay*30*60*60*24)/ (60*60*24));
    
    $fark_saat   = floor(($fark - $fark_yil * 365*60*60*24 - $fark_ay*30*60*60*24 - $fark_gun*60*60*24)/ (60*60));
    $fark_dakika  = floor(($fark - $fark_yil * 365*60*60*24 - $fark_ay*30*60*60*24 - $fark_gun*60*60*24 - $fark_saat*60*60)/ 60);
     
    $fark = $fark_gun." gün ". $fark_saat." saat, ".$fark_dakika." dakika ";
    
    
    echo "Dükkanınızın Kapanmasına ". $fark.  "kaldı" ;