KAÇ GÜN/AY/SN ‘DİR HAYATTASINIZ?

        Doğum tarihinizi girerek şu ana kadar yaşadığınız zamanı ; gün , saat , dakika ve saniye olarak öğrenebilirsiniz.Bu işlemi yapan php kodlarını yazalım .Önce tüm kodlar daha sonra da kodların anlatımı aşağıda veriliyor. Php dosyasını en alttaki linkten indirebilirsiniz.

Doğum tarihinizi girip,hesapla butonuna tıklayınız.

# KODLAR GENEL GÖRÜNÜM #

 

Kodların açıklaması . . .

İlk önce formdan başlayalım . . .

Aşağıda doğum tarihi-gün bilgisini alacağımız açılır liste oluşturuluyor.Günleri Açılır listenin içine atamak için döngü oluşturuluyor.

<form action=”” method=”post”>
Doğum Tarihiniz : <select name=”gun” >
<option> Gün </option>
<?php
for($i=1 ; $i<=31 ; $i++){

echo ‘ <option value=” ‘ . $i . ‘ ” > ‘ . $i . ‘ </option> ‘ ;
}
?>

</select>

Aşağıda doğum tarihi ay bilgisini alacağımız açılır liste oluşturuluyor.Ayları açılır listenin içine atamak için $ay dizisi oluşturuluyor.Bu dizinin içindeki ayları atamak için $ay[$i-1] kullanılıyor. Dizi elemanları 0(sıfırdan) başladığı için $i-1 (Ocak-Aralık arası değer alır.0,ıncı eleman .ocak , 11. eleman Aralık’tır . ) oluyor.Value oalrak atadığımız $i (1-12 arası değer alır.) değeri ise hesaplama işleminde kullanılıyor .

<select name=”ay” >
<option> Ay </option>
<?php
$ay=array(“Ocak”, “Şubat”, “Mart”, “Nisan”, “Mayıs”, “Haziran”, “Temmuz”,”Ağustos”, “Eylül”, “Ekim”, “Kasım”,”Aralık”);
for($i=1 ; $i<=12 ; $i++){
echo ‘<option value=” ‘. $i .’ “>’ . $ay[$i-1] . ‘ </option> ‘ ;}
?>

Aşağıda doğum tarihi yıl bilgisini alacağımız açılır liste oluşturuluyor.Yılları açılır listenin içine atamak için oluşturulan döngü 1910 ile 2016 arasında .

<select name=”ay” >
<option> Ay </option>
<?php
$ay=array(“Ocak”, “Şubat”, “Mart”, “Nisan”, “Mayıs”, “Haziran”, “Temmuz”,”Ağustos”, “Eylül”, “Ekim”, “Kasım”,”Aralık”);
for($i=1 ; $i<=12 ; $i++){
echo ‘<option value=” ‘. $i .’ “>’ . $ay[$i-1] . ‘ </option> ‘ ;} ?>

Aşağıda doğum tarihi yıl bilgisini alacağımız açılır liste oluşturuluyor.Yılları açılır listenin içine atamak için oluşturulan döngü 1910 ile 2016 arasında .

<select name=”yil” >
<option> Yıl </option>
<?php
for($i=1900 ; $i<=2016 ; $i++){
echo ‘ <option value=” ‘ . $i .’ ” > ‘ . $i . ‘ </option> ‘ ;} ?>
</select>
<input name=”buton” value=”Hesapla” type=”submit”>
</form>
<?php } ?>

Hesaplama işlemi . . .

İlk önce açılır listeden gelen değerleri $_POST ile alıyoruz.

$gun=$_POST[“gun”];
$ay=$_POST[“ay”];
$yil=$_POST[“yil”];
$su_an=time(); 1

$dogum=mktime(0,0,0,$ay,$gun,$yil); 2
$fark=abs($su_an-$dogum); 3
$gun_sayisi=floor($fark/(24*60*60)); 4
$saat=floor(($fark-$gun_sayisi*24*60*60)/(60*60)); 5
$dakika=floor(($fark-($gun_sayisi*24*60*60+$saat*60*60))/60); 6
$saniye=$fark-($gun_sayisi*24*60*60+$saat*60*60+$dakika*60); 7

1 Şu an ki (Hesapla butonunna tıklandığı andaki) tarihi $su_an değişkenine aktarılıyor.Elde edilen değer saniye cinsindendir.

2 mktime() fonksiyonu istenilen tarihi oluşturmayaya yarar.Parametrelerini incelersek (0 ,0,0,$ay,$gun,$yil) sırasıyla saat , dakika , saniye , ay, gün, yıl şeklindedir . Burada açılır listeden alınan doğum tarihi bilgisinden doğum tarihi zamanı oluşturuluyor .Elde edilen değer saniye cinsindendir.

3 İki tarih birbirinden çıkarılarılarak , $fark değişkenine aktarılıyor .Elde edilen değer saniye cinsindendir.Yani şu an ile doğum tarihi arasında ne kadar saniye geçmişse $fark değişkenine aktarılıyor.

4 Gün sayısını hesaplamak için 1 günde kaç saniye olduğunu hesaplanır . (24x60x60) $fark ‘ı güne çevirmek için 24x60x60 değerine bölünüyor.Elde edilen değer ondalıklı çıkacaktır.Bu değer floor() ile tam sayıya yuvarlanıyor .

5 Saat sayısını hesaplamak için 1 saatte kaç saniye olduğunu hesaplanır . (60×60) $fark ile yaşanılan tam gün sayısına iait saniye değeri çıkarılıyor. Ve 60×60 sn)’ye bölünerek saat değeri hesaplanıyor.

6 Dakika sayısını hesaplamak için 1 dakikada 60 saniye bilgisi kullanılıyor . Saat hesabından sonra artan sanieyeler 60 ‘a bölünerek dakikaya çevriliyor .

7 Dakika hesabından kalan saniyeler bize yaşadığımız saniye değerini verir .

PHP DOSYASINI İNDİR

Paylaş:

Bir cevap yazın

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