Merhaba arkadaşlar şuan boştayım bişeyler yazayım dedim. Bu yazımda mktime() fonksiyonu kullanarak iki tarih arasındaki gün farkını bulacağız. Evet mktime() fonksiyonunu da bu arada tanımış ve görmüş olacağız.Devam edelim bakalım…Php’nin mktime() fonksiyonu kendisine verilen değerlere göre o tarihin unix timestamp cinsinden değerini vermektedir. Yani 01.01.1970 den bu yana kadar geçen süreyi saniye cinsinden vermektedir.Kullanımına bakalım:int mktime( int saat, int dakika, int saniye, int ay, int gun, int yil);mktime fonksiyonu yukarıda da görüldüğü gibi altı adet argüman almakta ve bu aldığı argümanların veri tipi de integerdir yani sadece rakamlardan oluşabilir. Evet şimdi yukarıdaki fonksiyonumuzu kullanarak iki tarih arasındaki gün farkını nasıl alabiliriz ona geçelim. $t2_timestamp){$result = ($t1_timestamp – $t2_timestamp) / 86400;}else if ($t2_timestamp > $t1_timestamp){$result = ($t2_timestamp – $t1_timestamp) / 86400;}return $result;}?> ark_bul adında bir fonksiyon tanımladık. Şimdi fonksiyonumuzu biraz tanıyalım… Fonksiyonumuz üç adet argüman almaktadır bunlar tarih1, tarih2 ve ayraç. İsimlerinden de anlaşılacağı gibi tarih1 ve tarih2 argümanlarına gün farkını öğrenmek istediğimiz tarihleri belirtiyoruz. Ayraç da ise tarihimizdeki gün ay ve yıl değerlerini ayıran karakteri belirtiyoruz.Daha sonrasında php’nin list dil yapısını kullanarak explode ile parçalanan verileri gün ay ve yıl olarak ayrı ayrı değişkenlere atıyoruz. İki tarihimizi de parçaladıktan sonra mktime() fonksiyonundan yararlanarak gün ay ve yıl olarak elde ettiğimiz tarihleri unix timestamp zaman mührüne çevirmeye sıra geldi.Mktime() içindeki geçen üç adet sıfır saatin 00:00:00 olduğunu söylüyor isterseniz siz tam saat dakika ve saniye değerlerini de belirtebilirsiniz.. Evet t1 ve t2 değişkenlerimize iki tarihimizinde timestamp cinsinden değerlerini elde edip depoladıktan sonra if koşullarına geçiyoruz.İki adet if koşulu kullandım bunun sebebi ise verilen tarihlerin hangisinin büyük ya da hangisinin küçük olduğunu anlamak için çünkü büyükten küçüğü çıkaracağız yoksa elde ettiğimiz gün farkının önünde eksi ( – ) işareti olacaktır :)Koşullarımız hangi tarih daha büyük ise küçüğü büyükten çıkarıp güne bölüyor.. Fonksiyon içindeki 86400 değeri saniye cinsinden bir günü ifade etmektedir.Yani:saniye * dakika * saat ( 60 * 60 * 24 ) = 86400Neden 86400 saniyeye bölüyoruz gibi bir düşünceniz olabilme ihtimaline karşı açıklık getireyim. Verilen iki tarihin timestamp değerlerini bulup bu değerleri çıkardık ve sonuç olarak elimizde yine saniye cinsinden bir değer elde etmiş olduk. Bu değeri de saniye cinsinden bir güne böldüğümüz de bize gün farkını verecektir.En son olarak da elde ettiğimiz gün farkını fonksiyondan değer olarak döndürüyoruz..Kullanımına bir örnek verelim… Örneğimizde yıl başına kaç gün varmış onu öğrenelim…