PHP mktime() ile zaman işlemleri

Date23 / Kasım / 2008 Author İsa Engiz    Category php     Tags , , , , Yorumlar3 Yorum Yapilmis.

PHP ile tarih işlemleri yapmak her zaman lazım olur. Uygulamanızın özellikleri ne olursa olsun, bir yerinde mutlaka zaman hesaplama ile haşır neşir olursunuz. Böyle durumlarda mktime() fonksiyonu çok işinize yarayabilir.

mktime() nedir?

mktime() fonksiyonu, kendisine verilen verilen tarih ile 1 Ocak 1970 arasındaki farkı hesaplar.

Örnek olarak 1 Ocak 1970 ile 22 Kasım saat 08:00 arasındaki farkı şu şekilde bir sayı ile geri döndürür:

1227340850

Bu da görüldüğü üzere 1 Ocak 1970den bu yana ne kadar saniye geçtiğidir!

Kullanımı

kullanımı şu şekildedir:

$saat = 08;
$dakika = 0;
saniye = 0;
$ay = 11;
$gun = 22;
$yil = 2008;
 
$sonuc = mktime($saat, $dakika, $saniye, $ay, $gun, $yil);
 
echo $sonuc;
 //1227340850

Burada dikkat etmek gereken kullanılan zaman öğelerinin sırasıdır, saat-dakika-saniye-ay-gün-yıl.

Tarih işlemlerinde kullanımı

Aslında şunu sormak gerekir, 1 Ocak 197o’den bu yana geçen zamanı saniye cinsinden elde edince ne işimize yarayacak? Özellikle bununla ilgilenmiyorsanız pek bir işimize yaramaz ancak mktime() fonksiyonunun asıl işlevi, iki tarih arasındaki farkı bulmak istediğimizde ve date() fonksiyonu ile beraber kullandığımızda ortaya çıkıyor.

Örneğin iki tarih arasındaki farkı bulmak istiyoruz. Yapmamız gereken işlem şudur:

1 - Her iki tarihi de mktime() ile saniyeye çevirelim.
2 – Aralarındaki farkı bulalım.
3 - Saniye cinsinden bu farkın kaç yıl yaptığını hesaplayalım.

$tarih1 = mktime(0, 0, 0, 5, 15, 1995);
$tarih2 = mktime(0, 0, 0, 11, 27, 2007);
$fark = $tarih2-$tarih1;
$yil = floor($fark / (365*24*60*60));

mktime’ı kullanabileceğimiz bir diğer alan da veritabanında tarih değerlerini saklamak olabilir. Veritabanına tarihi kaydederken mktime() ile saniye olarak kaydederiz, daha sonra date() fonksiyonu yardımıyla veritabanında tutulan bu saniye cinsinden değeri tekrar ifade ettiği tarihe çevirebiliriz.

$zaman = mktime(0, 0, 0, 11, 22, 2008);
 
echo date('d/m/Y', $zaman);
//22/11/2008

Ayrıca mevcut tarihe gün ekleyip çıkarmakta da kullanılabilir:

$zaman = time(); //simdiki zaman
$besgun = 60*60*24*5 //bes gunde gecen saniye
 
echo date('d/m/Y', ($zaman+$besgun));
//herzaman bes gun sonrasının tarihi

Sonuç

mktime() fonksiyonunun kullanılabileceği alanlar daha da genişletilebilir, sonuç olarak herhangi bir zamanı saniye olarak elde ettikten sonra yapabileceklerimizi istediğimiz kadar çeşitlendirebiliriz.

Bir sonraki php yazısında görüşmek üzere…

- Bu blogda yer alan yazıları RSS ile takip edebilirsiniz. RSS aboneliği için tıklayın.

- Ya da bu blogda yer alan bütün yazıları içindekiler sayfasında görüntüleyebilirsiniz. Tıklayın!

PHP mktime() ile zaman işlemleri yazısına 3 Yorum yapılmış.

  • BitaMig 05 Aralık 2008, 14:08

    Sade güzel bir anlatım olmuş.ELine sağLık.

  • mirc 09 Ocak 2009, 11:01

    anlatım super gercekten iyi bi site olmus..

  • Serdar 25 Mart 2010, 21:13

    Gercektende cok güzel aciklamissiniz. Elinize zihninize saglik!

görüşünü belirt

Spam Protection by WP-SpamFree

Arama


E-Posta Aboneliği


RSS Aboneliği

En Çok Yorumlanan Yazılar

Etiketler

404 ajax apache arama butonu as astrofizik açık kaynak banner blogger blogger/blogspot Blogger / Blogspot blogspot case chmod css date dosya yükleme editör etiket etkinlik favicon featured form ftp galeri Genel gimp hata sayfası header htaccess htpasswd ilişkisel veritabanı index innodb javascript join JQuery kategori koodla linux mysql opacity php resim url

Son Yorumlar

  • Fatih: Açıkçası sitenizi yeni keşfettim ve gerçekten beğendim. Kaynak ve tutorial ihtiyacı olduğunda yabancı blog...
  • beyo: emeğine sağlık, temiz bir anlatım olmuş
  • gokhan: güzel bir anlatım yapmışsın.. devamını bekleriz.. kolay gelsin
  • web yazılım şirketi: google blog araması ile .net üzerinden hizmet veren web yazılım şirketi ararken tesadüfen bu web...
  • Codderol: çok teşekkürler bu çalışma bana çok yardımcı oldu….

Sayfalar


Faydalı Bağlantılar