v2.5.2
Giriş yap

PHP Tarih İşlemi Yardım

ilkertuncer
289 defa görüntülendi

Merhabalar. Elimde php ile yazılmış 2 tarihi birbirinden çıkaran bir işlem var fakat istediğim sonucu vermiyor.

İstiyorum ki şu https://prnt.sc/l_iyqzpvxJmc işlemdeki gibi aynı tarihleri yazınca bana " 4 Yıl 7 Ay 1 Gün " değerini versin fakat localimde bana " 4 yıl 6 ay 30 gün " Değerini veriyor.

Sanırım iki tarihi birbirinden çıkartmak yerine iki tarihin arasındaki süreyi buldurduğu için bunu yapıyor.

Peki bu durumda ne yapmalıyım?

Kodum

//Çı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);
Cevap yaz
Cevaplar (2)
h4ckdr0
514 gün önce
<?php
//Çıkış Tarihinden Çıkarılıcak Tarih
$gun = 01;
$ay = 01;
$yil = 2012;

// Çıkış Tarihi
$gunCikis = 31;
$ayCikis = 07;
$yilCikis = 2016;

// İşe giriş ve çıkış tarihlerini DateTime objeleri olarak oluşturun
$iseGirisTarihi = new DateTime("$yil-$ay-$gun");
$istenCikisTarihi = new DateTime("$yilCikis-$ayCikis-$gunCikis");

// İşe giriş ve çıkış tarihleri arasındaki farkı hesaplayın
$fark = $istenCikisTarihi->diff($iseGirisTarihi);
// Eğer gün değeri 30'a eşitse ay değerini 1 arttır ve gün değerini 1 yap
if ($fark->d == 30) {
    $fark->m = $fark->m + 1;
    $fark->d = 1; // 1 yada 0 olabilir
}
// Farkı yıl, ay ve gün olarak ekrana yazdırın
echo $fark->y . " Yıl " . $fark->m . " Ay " . $fark->d . " Gün";

// Sonuç: 4 Yıl 6 Ay 30 Gün
// İstenen: 4 Yıl 7 Ay 1 Gün
abdullahx
536 gün önce

PHP nin farklı sürümlerinde faklı sonuçlar veriyor, ilginç gerçekten.
https://3v4l.org/mFpnd