Kodumuzun yaptığı iş, php de iki tarih arasındaki farkı bulmaya yarıyor.
Aşağıda kodlar anlaşılır bir yapıda.Yıl,ay,gün,saat,dakika,saniye nerelerde hesaplanmış belli, zaten açıklama satırları herşeyi düzenli tutmuştur.
function zamanFark($eskiTarih){ //$eskiTarih = ("02/08/2008 | 23:39:22"); $date = date('d/m/Y | H:i:s'); $zaman = getdate(); $p = explode("|",$eskiTarih); $pT = explode("/",$p[0]); $pZ = explode(":",$p[1]); $gun = $pT[0]; $ay = $pT[1]; $yil = $pT[2]; $saat = $pZ[0]; $dakika = $pZ[1]; $saniye = $pZ[2]; $eskiSaniye = mktime($saat,$dakika,$saniye,$ay,$gun,$yil); $simdikiSaniye = $zaman[0]; if($simdikiSaniye > $eskiSaniye){ $fark = ($simdikiSaniye - $eskiSaniye); //burada yılı hesapladık $yilSaniye = ((60 * 60 * 24 * 365)); //bir yıl bukadar saniye 6 saat $yildanKalan = (($simdikiSaniye - $eskiSaniye) % $yilSaniye); if($yilSaniye > $fark){ $z[yil] = "0"; }else{ $z[yil] = (($fark - $yildanKalan) / ($yilSaniye)); } //burada ayı hesaplayalım $aySaniye = (60 * 60 * 24 * 30); $aydanKalan = ($yildanKalan % $aySaniye); if($aySaniye > $yildanKalan){ $z[ay] = "0"; }else{ $z[ay] = (($yildanKalan - $aydanKalan) / ($aySaniye)); } //günü hesaplayalım $gunSaniye = (60 * 60 * 24); $gundenKalan = ($aydanKalan % $gunSaniye); if($gunSaniye > $aydanKalan){ $z[gun] = "0"; }else{ $z[gun] = (($aydanKalan - $gundenKalan) / ($gunSaniye)); } //saati hesaplayalım $saatSaniye = (60 * 60); $saattenKalan = ($gundenKalan % $saatSaniye); if($saatSaniye > $gundenKalan){ $z[saat] = "0"; }else{ $z[saat] = (($gundenKalan - $saattenKalan) / ($saatSaniye)); } //dakika hesaplayalım $dakikaSaniye = (60); $dakikadanKalan = ($gundenKalan % $dakikaSaniye); if($dakikaSaniye > $saattenKalan){ $z[dakika] = "0"; }else{ $z[dakika] = (($saattenKalan - $dakikadanKalan) / ($dakikaSaniye)); } $saniye = $dakikadanKalan; $z[saniye] = $saniye; return $z; }else{ return FALSE; //burası yanlış zaman girildiği zaman döner } } /* $date = "21/08/2009 | 23:44:25"; print_r($a->zamanFark($date)); */
Yukardaki kodun çıktısı şu mantıktadır:
Array ( [yil] => 0 [ay] => 0 [gun] => 0 [saat] => 0 [dakika] => 2 [saniye] => 23 ) ;
Bizim iki tarih arasındaki farkı bulmaya yarayan kodumuz şu şekilde yazdırılır:
$zaman = $a->zamanFark($date); print $zaman[ay];
Responses to “iki tarih arasındaki farkı bulma”