• 18-07-2020, 20:18:08
    #1
    Merhaba;

    data-diff ile iki tarih arasındaki farkı alıyorum fakat benim istediğim $tarih1,$tarih2 yi geçtiği zaman bunu kontrol etmem yani ekrana süre doldu yazdırmam fakat bu kod ile tarihlerin yerlerini değiştirseniz bile hep pozitif çıkıyor yani aralarında 0 gün kalıp 1 gün daha geçtiği zaman -1 olmak yerine +1,2,3 diye devam ediyor bunu nasıl kontrol edebilirim ?

    Teşekkürler.
    Kod:
    function gun($t1,$t2){
        $tarih1= new DateTime($t1);
        $tarih2= new DateTime($t2);
        $interval= $tarih1->diff($tarih2);
        return $interval->format('%a');
    }
  • 18-07-2020, 20:21:55
    #2
    Modal adlı üyeden alıntı: mesajı görüntüle
    Merhaba;

    data-diff ile iki tarih arasındaki farkı alıyorum fakat benim istediğim $tarih1,$tarih2 yi geçtiği zaman bunu kontrol etmem yani ekrana süre doldu yazdırmam fakat bu kod ile tarihlerin yerlerini değiştirseniz bile hep pozitif çıkıyor yani aralarında 0 gün kalıp 1 gün daha geçtiği zaman -1 olmak yerine +1,2,3 diye devam ediyor bunu nasıl kontrol edebilirim ?

    Teşekkürler.
    Kod:
    function gun($t1,$t2){
        $tarih1= new DateTime($t1);
        $tarih2= new DateTime($t2);
        $interval= $tarih1->diff($tarih2);
        return $interval->format('%a');
    }
    if $tarih1 > $tarih2
    echo "Süre doldu"

    else
    echo "Devam ediyor"

    mantığı olabilir hocam.
  • 18-07-2020, 20:33:52
    #3
    Modal adlı üyeden alıntı: mesajı görüntüle
    Merhaba;

    data-diff ile iki tarih arasındaki farkı alıyorum fakat benim istediğim $tarih1,$tarih2 yi geçtiği zaman bunu kontrol etmem yani ekrana süre doldu yazdırmam fakat bu kod ile tarihlerin yerlerini değiştirseniz bile hep pozitif çıkıyor yani aralarında 0 gün kalıp 1 gün daha geçtiği zaman -1 olmak yerine +1,2,3 diye devam ediyor bunu nasıl kontrol edebilirim ?

    Teşekkürler.
    Kod:
    function gun($t1,$t2){
        $tarih1= new DateTime($t1);
        $tarih2= new DateTime($t2);
        $interval= $tarih1->diff($tarih2);
        return $interval->format('%a');
    }

    function gun($t1,$t2){
    $tarih1= new DateTime($t1);
    $tarih2= new DateTime($t2);
    $interval= $tarih1->diff($tarih2);
    
    $timeStamp1 = $tarih1->getTimestamp();
    $timeStamp2 = $tarih2->getTimestamp();
    
        if ($timeStamp1 > $timeStamp2) {
           // burada tarih 1 tarih 2 den büyük, yani senin istediğin şey burası aslında
           // buraya ister süre doldu gibi bir şey yazdır, istersende başına eksi ekleyerek göster.
           // 2 returnden birini döndürmen gerek, işine yaraycak olanı döndür
           return 'Süre doldu'
           return  '-'.$interval->format('%a');
        }
    
    return $interval->format('%a');
    }
  • 18-07-2020, 20:38:13
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    function gun($t1,$t2){
        $tarih1= new DateTime($t1);
        $tarih2= new DateTime($t2);
        $diff = $interval->days; // 2 tarih arasındaki gün sayısı
        $is_negative = $interval->invert; // eğer değer - ise değer 1 , + ise 0
        return  $is_negative ? 0 - $diff : $diff ;
    }
  • 18-07-2020, 20:47:33
    #5
    Wtapostar adlı üyeden alıntı: mesajı görüntüle
    function gun($t1,$t2){
    $tarih1= new DateTime($t1);
    $tarih2= new DateTime($t2);
    $interval= $tarih1->diff($tarih2);
    
    $timeStamp1 = $tarih1->getTimestamp();
    $timeStamp2 = $tarih2->getTimestamp();
    
        if ($timeStamp1 > $timeStamp2) {
           // burada tarih 1 tarih 2 den büyük, yani senin istediğin şey burası aslında
           // buraya ister süre doldu gibi bir şey yazdır, istersende başına eksi ekleyerek göster.
           // 2 returnden birini döndürmen gerek, işine yaraycak olanı döndür
           return 'Süre doldu'
           return  '-'.$interval->format('%a');
        }
    
    return $interval->format('%a');
    }
    Çok teşekkür ederim
  • 18-07-2020, 20:50:05
    #6
    Modal adlı üyeden alıntı: mesajı görüntüle
    Çok teşekkür ederim
    rica ederim hocam