PHP İle İki Tarih Arası Gün Farkını Bulma

Bu eğitimde, belirlenen iki tarih arasındaki gün farkını iki farkı yol ile bulup çıktısını alacağız. İlk örneğimizi iki tarih arasındaki farkı bulmak için unix time değerini kullanacağız. Diğer örnekte ise php içerisinde yer  alan DateTime sınıfını kullanacağız.

PHP Hesaplaması İle Gün Farkını Bulma

Tarih değerlerini alarak klasik bir şekilde iki tarih arasındaki farkın nasıl alınacağından bahsedeceğim. Yapacağımız işlemleri maddeler halinde yazıp sonrasında PHP kodlarına geçelim.

  • Kullanıcıdan başlangıç ve bitiş tarihlerini alıyoruz. Ayrıda zaman farkı için time zone değerini de alıyoruz.
  • Kullanıcıdan gelen tarih formatını kontrol edip bilgi veriyoruz.
  • Yazılan tarih değerini tek tek bölüyoruz.
  • Bölünen tarihleri değişkenlere atıyoruz.
  • Tarih büyük/küçük kontrolü sonrası hesaplama yapıyoruz.
  • Hesaplanan değeri return ile döndürüyoruz.

Yukarıda yapacağımız işlemleri maddelendirdik. Şimdi de bunu PHP kodları ile hazırlayalım.

<?php
function farkbul1($tarih1,$tarih2,$timeZone){
   // timezone ayarlıyoruz
   date_default_timezone_set($timeZone);
   // 01.01.1970 formatını kontrol ediyoruz.
   if (!preg_match("@\.@",$tarih1) || !preg_match("@\.@",$tarih2))
   exit('Standart Format: 01.01.1970');
   // Dizi değerleri değişkenlere atadık.
   list($gun1,$ay1,$yil1) = explode('.',$tarih1);
   list($gun2,$ay2,$yil2) = explode('.',$tarih2);
   // Değişkenleri mktime()'a yazarak unix değer elde ediyoruz.
   $tarih_1 = mktime('0','0','0',$ay1,$gun1,$yil1);
   $tarih_2 = mktime('0','0','0',$ay2,$gun2,$yil2);
   // Kontrol ediyor ve hesaplama yapıyoruz.
   if ($tarih_2 > $tarih_1){
      $fark = ($tarih_2 - $tarih_1) / 86400;
   }else{
      $fark = 'ilk değer küçük, ikinci değer büyük olmalı!';
   }
   return $fark." gün farkı var.";
}
## Kullanımı
echo farkbul1('06.06.2016','31.12.2019','Europe/Istanbul');
## Ekran çıktısı : 1303 gün farkı var.
?>

Yukarıda yer alan farkbul1() fonksiyonu ile iki tarih arası gün farkını bulabilirsiniz. Belirlenen tarihler doğrultusunda ekran çıktısı da 1303 olacaktır. Bu fonksiyon ile iki tarih arası gün farkını rahatlıkla bulabilirsiniz.

PHP DateTime Sınıfı İleİle Gün Farkını Bulma

PHP Programlama dili içerisinde hazır bir şekilde gelen DataTime sınıfı ile iki tarih arasındaki gün farkını rahatlıkla hesaplayabilirsiniz. Kullanıcıdan başlangıç ve bitiş değerlerini alıp diff() metodunu kullanarak sonuca ulaşmış olacağız.

<?php
function farkbul2($t1,$t2){
   $tarih1     = new DateTime($t1);
   $tarih2     = new DateTime($t2);
   $interval   = $tarih1->diff($tarih2);
   return $interval->format('%a gün farkı var.');
}
## Kullanımı
echo farkbul2('2016-06-06', '2019-12-31');
## Ekran çıktısı : 1303 gün farkı var.
?>

Yukarıda yer alan farkbul2() fonksiyonu ile iki tarih arasındaki gün farkını çok basit bir şekilde elde edebilirsiniz. PHP içerisinde dahil olarak gelen sınıfları kullanarak tüm işlemlerinizi kolaylaştırabilir ve hızlı sonuçlar elde edebilirsiniz.

Bir önceki yazım olan PHP İle Tarih Formatını Değiştirme başlıklı makalemi de okumanızı öneririz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.