• 18-11-2021, 10:05:38
    #1
    Merhaba,
    Elimde iki adet tarih mevcut (DateTime formatında) bunların arasındaki gün sayısını hesaplamak istiyorum.
    Birkaç yol denedim fakat yıl vs. olmasını istemiyorum sadece gün sayısı olmalı. Bunu nasıl yapabilirim?
    Denediğim kodu aşağıda bırakıyorum.

    $nowDate = new DateTime();
    $lastDay = new DateTime($Date);
    $difference = $nowDate->diff($lastDay);
    if(is_null($Date)){ return '<hr>'; }
    return $difference->y.' Gün';
  • 18-11-2021, 10:16:36
    #2
    fatbotter.com
    AlbaySIMSEK adlı üyeden alıntı: mesajı görüntüle
    Merhaba,
    Elimde iki adet tarih mevcut (DateTime formatında) bunların arasındaki gün sayısını hesaplamak istiyorum.
    Birkaç yol denedim fakat yıl vs. olmasını istemiyorum sadece gün sayısı olmalı. Bunu nasıl yapabilirim?
    Denediğim kodu aşağıda bırakıyorum.

    $nowDate = new DateTime();
    $lastDay = new DateTime($Date);
    $difference = $nowDate->diff($lastDay);
    if(is_null($Date)){ return '<hr>'; }
    return $difference->y.' Gün';

    $now = time();
    $your_date = strtotime("2021-10-01");
    $datediff = $now - $your_date;
    
    echo round($datediff / (60 * 60 * 24));
  • 18-11-2021, 10:18:12
    #3
    Bir yöntem aşağıdaki gibi olabilir. Basit matematiksel işlemler ile bulabiliriz.
    $tarih1 = strtotime($date);
    $tarih2 = strtotime($lastday);
    $gunsayisi = floor(($tarih2 - $tarih1) / 86400);
    PHP dökümantasonda ayrıca aşağıdaki gibi bir çözüm mevcut:
    https://www.php.net/manual/en/function.date-diff.php#115065
  • 18-11-2021, 10:32:14
    #4
    $date = "2021-10-30";
    $days = (new DateTime($date))->diff(new DateTime())->days;
    $result = is_null($date) ? '<hr>' : $days . ' Gün';
    return $result;
    //Çıktı: 19 Gün
  • 18-11-2021, 10:35:23
    #5
    $difference->y alanını $difference->d yaparak yapabilirsin hocam.
  • 18-11-2021, 21:04:55
    #6
    lookout adlı üyeden alıntı: mesajı görüntüle
    $now = time();
    $your_date = strtotime("2021-10-01");
    $datediff = $now - $your_date;
    
    echo round($datediff / (60 * 60 * 24));
    Belirttiğiniz yöntemi kullanarak sorunsuz bir şekilde istediğim gibi yaptım.
    Bir sorum daha olacaktı. Elimde 0000-00-00 gibi bir tarih olduğunu varsayalım.
    Bu tarihe x adet gün eklemek istiyorum. Bu işlemi en kolay nasıl sağlayabilirim?
  • 18-11-2021, 21:55:59
    #7
    AlbaySIMSEK adlı üyeden alıntı: mesajı görüntüle
    Belirttiğiniz yöntemi kullanarak sorunsuz bir şekilde istediğim gibi yaptım.
    Bir sorum daha olacaktı. Elimde 0000-00-00 gibi bir tarih olduğunu varsayalım.
    Bu tarihe x adet gün eklemek istiyorum. Bu işlemi en kolay nasıl sağlayabilirim?
    PHP sürümünüze dikkat edin hepsi çalışıyor fakat bazıları bazı sürümlerde yeni geldiği için eski sürümlerde çalışmayacaktır.
    <?php
    $date = date_create("2021-11-18");
    date_add($date, date_interval_create_from_date_string("1 days"));
    echo date_format($date, "Y-m-d");
    ?>
    
    <?php
    echo date('Y-m-d', strtotime("2021-11-18". ' + 1 days'));
    ?>
    
    <?php
    $date = new DateTime("2021-11-18");
    $date->add(new DateInterval('P1D')); // https://www.php.net/manual/en/dateinterval.construct.php
    echo $date->format('Y-m-d');
    ?>