PHP ile Zaman Farkı Hesaplamak
Daha önce php’de iki tarihi karşılaştırmayı anlatmıştım /phpde-tarih-karsilastirma, ancak iki tarih arasındaki ay, gün, yıl farkını kullanmanız gerektiğinde, php’nin tarih-zaman sınıfını kullanarak iki tarih arasındaki zaman farkını istediğiniz periyodda hesaplatabilirsiniz.
Bu yönetmle hesaplayacağınız tarih farkının iki genel kullanımı vardır. Birincisi hesaplamalarınızda iki tarih arasındaki geçen zamana göre yaptığınız bir kuralınız vardır. Mesela bir blog yazınızın 1 aydan önce yazıldığını denetlemek ve buna göre “Bilgiler geçerliliğini yitirmiş olabilir” gibi bir not göstermek istiyorsunuz. Bunun için şu an ile yazının yazılma tarihi arasında 1 ay olup olmadığını sorgulayabilirsiniz.
Bu hesaplama aslında basit bir matematiksel bir hesap gibi görünse de aslında ay uzunluğu, artık yıl hesabı gibi nedenlerden dolayı ve her zaman 1 ay = 30 gün olmaması nedeniyle biraz daha karışık olabiliyor. Dolayısıyla anlattığım yöntem gibi hazır yöntemleri kullanarak bu hesaplamaları doğru şekilde yapabilirsiniz.
Şimdi basit bir kod ile örnekleyeceğim.
$now = new DateTime();
$created = new DateTime($_entry['created_at']);
$diff = date_diff($now, $created);
$days = $diff->format('%d');
$hours = $diff->format('%h');
$mins = $diff->format('%i');
$diffStr = NULL;
if ($days > 0) {
$diffStr .= $days . ' gün';
}
if ($hours > 0) {
$diffStr .= ' ' . $hours . ' saat';
}
if ($mins > 0) {
$diffStr .= ' ' . $mins . ' dakika';
}
print $diffStr;
Yukarıdaki kodda $diffStr değişkeni, yazınızın kaç dakika, saat, gün önce eklendiğini gösterecektir. Eğer isterseniz ayı, yılı da ekleyerek herhangi bir tarih formatını “3 gün 8 saat 3 dakika önce” şeklinde bir metine çevirebilirsiniz.
İlgili Yazılar
- 2 min readmfyz.com Artık Mobil Uyumlu
- 1 min readBelki de Son Dökümanlar: Yeni Yazılar ve Gelecek Planları
- 3 min readHTML5 Form Özellikleri
- 7 min readGoogle Chart API Kullanarak Dinamik Grafikler Oluşturma Rehberi
- 7 min readProjelerinize çok dil konuşmayı öğretin!
- 6 min readiOS Uygulama İçi Satış Entegrasyonu ve Ödemeleri Doğrulamak
Paylaş