Php’nin en değerli zaman fonksiyonu mktime

Kategori: (Web Programlama) Yazan: admin, 20-09-2009

Etiketler : ,

Bazı arkadaşlarımın kullandığı zaman olaylarını ve bunlarda karşılaştıkları sorunları görerek, ben kendi uygulamalarımda sürekli kullandığım mktime() fonksiyonunu anlatmaya çalışacağım.

mktime() fonksiyonu Php’de zamanı Unix zamanlamasına çeviren fonksiyondur. Basitçe söylersek, yaşadığınız, geçmiş ya da gelecekteki bir zamanı sayısal kodlamaya çeviren bir fonksiyondur. Bir uygulama echo mktime(); yazıp çalıştırdığımız zaman ekrana yaklaşık 10 karakterli bir sayısal ifade yazdırdığını görürsünüz. Bu sizi korkutmasın bu sayısal ifadeleri geri dönüştürmek gerçekten çok kolay :) .

Örneğin ;

<?

$zaman = mktime();

echo date(“d.m.Y H:i”, $zaman); // çıktı : gun.ay.yil Saat:dakika

?>

date() varken neden bunu kullanalım, tek satırken 2 satıra çıktı kod diyebilirsiniz. Direk zamanı bastırırken haklısınız doğru fakat bir duyuru uygulamasında veya zamana göre çekilen sorgularda gerçekten işinizi çok kolaylaştıyor. Buna örnek vermeden önce herhangi bir günü ayı yılı mktime() ile nasıl çevirebiliriz ona örnek verelim.

<?

/* mktime($saat, $dakika, $saniye, $ay, $gun, $yil); şeklinde yazarsak bize sayısal değer verecektir */

$saat = 12;

$dakika = 21;

$saniye = 40;

$ay = 10;

$gun = 18;

$yil = 2010;

$zaman = mktime($saat, $dakika, $saniye, $ay, $gun, $yil);

echo $zaman;

?>

Örnekte göreceğiniz üzere bir zamanı Unix damgasına çevirdik. Şimdi bunda sorgularda nasıl faydalanabiliriz ona basitçe bir örnek verelim.

<?

$simdi = mktime();

$sorgu = mysql_query(“select sutunadi from tabloadi where zaman  < $simdi”);

list($veriler) = mysql_fetch_row($sorgu);

echo $veriler;

?>

Tablomuzdaki kayıtlı verilerden şimdiki zamandan öncekileri listeleyen basit bir sorgu. > işareti koyarak büyük olanları çekebiliriz. Ben bunu daha çok mysql cache sisteminde kullanıyorum. Bulunduğumuz zamana 20 dakika gibi bir süre ekleyip, sorgularda ona göre çalıştırıyorum. Bunu da basit bir örnekle açıklayacak olursak;

<?

$simdi = mktime();

$cachezamani = 60 * 20; // 20 = dakika

$cachezamani = $simdi+$cachezamani;

mysql_query(“insert into cache values(‘$cacheverileri’, ‘$cachezamani’)”);

// veriyi tablomuza yazdırdık çekerken ise yukarıdaki örnek mantıgı ile çekiyoruz

?>

Basitçe ve hızlıca sizlere mktime(); fonksiyonunu anlatmaya çalıştım. Umarım faydalı olur.

Yorum Yazın

18 - 1 = ? (İşleminin Sonucu)