• 17-11-2022, 12:24:50
    #1
    Merhabalar. PHP ile girilen 2 tarihi birbirinden çıkarma işlemi yapıyorum fakat tarihleri doğru çıkartmıyor.
    Normalde işlemin sonucu " 4 Yıl, 7 Ay, 1 Gün " olmalı ama bende " 4 yıl 6 ay 30 gün " oluyor.
    Hatam nerede ?

    //Çıkış Tarihinden Çıkarılıcak Tarih
    $gun = 01;
    $ay = 01;
    $yil = 2012;
    
    // Çıkış Tarihi
    $guncikis = 31;
    $aycikis = 07;
    $yilcikis = 2016;
    
    // Custom Zaman Dilimi
    $iseGirisTarihi = date(' '.$gun.'-'.$ay.'-'.$yil.' ');
    $istenCikisTarihi = date(' '.$guncikis.'-'.$aycikis.'-'.$yilcikis.' ');
    
    //  Yılı Hesaplat
    $calisilanYil = strtotime('- '.$gun.' day, - '.$ay.' month, - '.$yil.' year',strtotime($istenCikisTarihi));
    echo $calisilanYil = date('y' ,$calisilanYil);
    
    //  Ayı Hesaplat
    $calisilanAy = strtotime('- '.$gun.' day, - '.$ay.' month, - '.$yil.' year',strtotime($istenCikisTarihi));
    echo $calisilanAy = date('m' ,$calisilanAy);
    
    // Günü Hesaplat
    $calisilanGun = strtotime('- '.$gun.' day, - '.$ay.' month, - '.$yil.' year',strtotime($istenCikisTarihi));
    echo $calisilanGun = date('d' ,$calisilanGun);
  • 17-11-2022, 12:31:16
    #2
    Beklediğiniz işlem sonucu yanlış hocam. 6 ay 30 gün olmalı zaten.
  • 17-11-2022, 12:31:37
    #3
    Gold üye
    iltu33 adlı üyeden alıntı: mesajı görüntüle
    Merhabalar. PHP ile girilen 2 tarihi birbirinden çıkarma işlemi yapıyorum fakat tarihleri doğru çıkartmıyor.
    Normalde işlemin sonucu " 4 Yıl, 7 Ay, 1 Gün " olmalı ama bende " 4 yıl 6 ay 30 gün " oluyor.
    Hatam nerede ?

    //Çıkış Tarihinden Çıkarılıcak Tarih
    $gun = 01;
    $ay = 01;
    $yil = 2012;
    
    // Çıkış Tarihi
    $guncikis = 31;
    $aycikis = 07;
    $yilcikis = 2016;
    
    // Custom Zaman Dilimi
    $iseGirisTarihi = date(' '.$gun.'-'.$ay.'-'.$yil.' ');
    $istenCikisTarihi = date(' '.$guncikis.'-'.$aycikis.'-'.$yilcikis.' ');
    
    //  Yılı Hesaplat
    $calisilanYil = strtotime('- '.$gun.' day, - '.$ay.' month, - '.$yil.' year',strtotime($istenCikisTarihi));
    echo $calisilanYil = date('y' ,$calisilanYil);
    
    //  Ayı Hesaplat
    $calisilanAy = strtotime('- '.$gun.' day, - '.$ay.' month, - '.$yil.' year',strtotime($istenCikisTarihi));
    echo $calisilanAy = date('m' ,$calisilanAy);
    
    // Günü Hesaplat
    $calisilanGun = strtotime('- '.$gun.' day, - '.$ay.' month, - '.$yil.' year',strtotime($istenCikisTarihi));
    echo $calisilanGun = date('d' ,$calisilanGun);
    2016 - 2012 = 4 yıl
    07 - 01 = 6 ay
    31 - 01 = 30 gün
    doğru hesaplamış sanki
  • 17-11-2022, 12:32:41
    #4
    hocam merhabalar.
    $date1 = new DateTime("2012-01-01");
    $date2 = new DateTime("2016-07-31");
    $interval = $date1->diff($date2);
    echo "fark: " . $interval->y . " yıl, " . $interval->m." ay, ".$interval->d." gün";
    
    
    echo "Gün bazlı fark : " . $interval->days . " gün";
    böyle dener misiniz?
  • 17-11-2022, 12:33:04
    #5
    Saul4Goodmann adlı üyeden alıntı: mesajı görüntüle
    2016 - 2012 = 4 yıl
    07 - 01 = 6 ay
    31 - 01 = 30 gün
    doğru hesaplamış sanki
    Hmm. Peki aynı tarihi manuel olarak Buradaki siteye girseniz.
    Formda istenen bürüt alanına 3200 yazmanız yeterli olacaktır.
  • 17-11-2022, 12:34:48
    #6
    Mhmmd adlı üyeden alıntı: mesajı görüntüle
    hocam merhabalar.
    $date1 = new DateTime("2012-01-01");
    $date2 = new DateTime("2016-07-31");
    $interval = $date1->diff($date2);
    echo "fark: " . $interval->y . " yıl, " . $interval->m." ay, ".$interval->d." gün";
    
    
    echo "Gün bazlı fark : " . $interval->days . " gün";
    böyle dener misiniz?
    Merhaba. Yardımın için teşşekür ederim fakat sonucu " 4 yıl, 6 ay, 29 " şeklinde veriyor bu sefer :0
  • 17-11-2022, 12:38:56
    #7
    iltu33 adlı üyeden alıntı: mesajı görüntüle
    Merhaba. Yardımın için teşşekür ederim fakat sonucu " 4 yıl, 6 ay, 29 " şeklinde veriyor bu sefer :0
    Bu fonksiyon aradaki zaman farkını aldığı için ayın başlangıçta yazdığınız günü ve son yazdığınız günü hariç tutarak hesaplıyor. Bu günleri de dahil etmek isterseniz gün kısmına +2 yazavilirsiniz.
  • 17-11-2022, 12:48:37
    #8
    Mhmmd adlı üyeden alıntı: mesajı görüntüle
    Bu fonksiyon aradaki zaman farkını aldığı için ayın başlangıçta yazdığınız günü ve son yazdığınız günü hariç tutarak hesaplıyor. Bu günleri de dahil etmek isterseniz gün kısmına +2 yazavilirsiniz.
    Maalesef olmuyor :c
    sonuç aşşağıdak şekilde işlemi değiştirince " 4 yıl 6 ay 28 gün " oluyor

    $gun = 1 + 2; $ay = 1; $yil = 2012;
    $guncikis = 31; $aycikis = 07; $yilcikis = 2016;
  • 17-11-2022, 12:49:18
    #9
    hocam kodlarda bir sıkıntı yok doğru sonuç veriyor