• 13-11-2020, 17:33:18
    #1
    Merhaba arkadaşlar,
    portalda bir kayıt girme işlemi yapıyorum. İlk kayıt yapıldıktan sonra ikinci kayıt 1 hafta sonra yapılsın istiyorum.
    veritabanında ilk kayıt oluşturulurken tarihleri tutuyorum örn: ilk kayıt oluşturulunca tarih = 13.11.2020, kullanacagi_tarih=20.11.2020 şeklinde.
    Kullanıcının kayıt eklemesi için 7 gün beklemesi 7 gün dolmuşsa ekleyebilmesini yoksa durumu beklemede görmesini istiyorum.
    Bunun için;
    $bugun_tarih =date('d.m.Y');
    $bitis_tarih =$vf['kullanacagi_tarih '];
    if($bugun_tarih > $bitis_tarih AND (int)$_GET['id'] == $vf['personelid']){
       echo 'Kayıt eklenebilir';
    }else{
      echo 'beklemede';
    }
    gibi bir mantık kurdum ama eksik sanırım. Nasıl bir yöntem önerirsiniz.
  • 13-11-2020, 17:40:54
    #2
    Kayıt yapılan alana girerken ve kayıt sırasında, kullanıcının kayıtları arasında tarihi 7 gün önceden büyük olan kaydı varsa kayıt yaptırmayacak ve uyarı vereceksiniz.
  • 13-11-2020, 17:54:24
    #3
    microtime kullanırsanız matematiksel işlemler daha kolay olur.

    Sizin yaptığınız iş matematik açısından doğru olmuyor

    21.11.2020 > 20.11.2020

    sonuç tutarsız olabilir.

    bugünün tarihini microtime veya kayıt tarihini microtime yaparak daha net işlem yapılabilir.

    $bugun_tarih = round(microtime(true));
    
    //veri tabanına 20.11.2020 şeklinde kayıt tuttuysanız ve o şekilde devam edeceğim derseniz
    
    $bitis_tarih = strtotime($vf['kullanacagi_tarih']);
    
    //gerisi aynı kalacak şekilde denerseniz sorun olmayacaktır.
    
    if($bugun_tarih > $bitis_tarih AND (int)$_GET['id'] == $vf['personelid']){
       echo 'Kayıt eklenebilir';
    }else{
      echo 'beklemede';
    }
  • 13-11-2020, 18:08:01
    #4
    Hayko adlı üyeden alıntı: mesajı görüntüle
    microtime kullanırsanız matematiksel işlemler daha kolay olur.

    Sizin yaptığınız iş matematik açısından doğru olmuyor

    21.11.2020 > 20.11.2020

    sonuç tutarsız olabilir.

    bugünün tarihini microtime veya kayıt tarihini microtime yaparak daha net işlem yapılabilir.

    $bugun_tarih = round(microtime(true));
    
    //veri tabanına 20.11.2020 şeklinde kayıt tuttuysanız ve o şekilde devam edeceğim derseniz
    
    $bitis_tarih = strtotime($vf['kullanacagi_tarih']);
    
    //gerisi aynı kalacak şekilde denerseniz sorun olmayacaktır.
    
    if($bugun_tarih > $bitis_tarih AND (int)$_GET['id'] == $vf['personelid']){
       echo 'Kayıt eklenebilir';
    }else{
      echo 'beklemede';
    }
    Teşekkür ederim fakat tutarsız bi başka nokta şu,
    Kayıt yaparken kayıt tarihini bugün olarak yazdırdığım için, kayıt ekleme sayfasında bugünün tarihi her ihtimalde 7 günden büyük olmuyor o sebeple hep beklemede kalıyor.
    Mantık basit aslında ama galiba ben karmaşık hale soktum. İstediğim, kayıt tarihinden itibaren 7 gün geçmişse yeni kayıt yapması.
  • 13-11-2020, 18:09:44
    #5
    Abm adlı üyeden alıntı: mesajı görüntüle
    Teşekkür ederim fakat tutarsız bi başka nokta şu,
    Kayıt yaparken kayıt tarihini bugün olarak yazdırdığım için, kayıt ekleme sayfasında bugünün tarihi her ihtimalde 7 günden büyük olmuyor o sebeple hep beklemede kalıyor.
    Mantık basit aslında ama galiba ben karmaşık hale soktum. İstediğim, kayıt tarihinden itibaren 7 gün geçmişse yeni kayıt yapması.
    o zaman kontrol esnasında bugünü 7 gün ileri kullanın

    $bugun_tarih = round(microtime(true)) + (60 * 60 * 24 * 7);

    Dikkat kayıt esnasında bunu kullanmayın ama