PHP mktime() ile zaman işlemleri
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…
- 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ış.
Arama
E-Posta Aboneliği
RSS Aboneliği
En Çok Yorumlanan Yazılar
- Ajax ile dinamik listeleme (23)
- PHP ile sınırsız alt kategori mantığı (23)
- Blogger’da “devamını oku” bağlantısı (21)
- MySQL’de “join” kullanımı (17)
- MySQL’de Transaction ve PHP ile kullanımı (16)
- Kullanıcı dostu url hazırlamak (14)
- PHP’nin (muhtemelen) az bilinen 10 özelliği (12)
- Kullandığınız programlama dili ne kadar popüler? (12)
- Kullanıcı dostu URL oluşturma (2. teknik) (11)
- .htaccess konuları [Giriş] (11)
Etiketler
Son Yorumlar
- Murat: Güzel bir teknik, şu ana kadar sınırsız alt kategori lazım olmadı ama olmayacağı anlamına gelmiyor
- iilyas: Bu kodlar çalışmıyor arkadaşım. Localde olduğu içinmi acaba ?
- iilyas: Arkadaşım çok teşekkür ediyorum. Harika anlatmışsın ajaxla çalışmalara başlamak lazım estetik açısından.....
- Nuri: bende bu şekilde bir çalışma yaptım ancak bir sorunum var ne yaptıysam url den index.php bölümünü kaldıramadım....
- Kemal: Makale için çok teşekkürler, resimleri div tagları ile yapabilirmiyiz. Bu arada imagelara link verirsek daha...
23 / Kasım / 2008
Sade güzel bir anlatım olmuş.ELine sağLık.
anlatım super gercekten iyi bi site olmus..
Gercektende cok güzel aciklamissiniz. Elinize zihninize saglik!