php date fonk ile server zamanına göre ya da belirli bir tarihe göre Dün bugün gibi kavramları nasıl oluştururum.
yani tarihimiz timestamp formatında 1362214200 olsun(02.03.13 10:50:00)
şuanki server zamanı ise 04.03.13 06:48:39 olsun saatlerin pek önemi yok.
1362214200 tarihe karşılık ben 2 Gün önce diye bir tarih kavramı yapmak istiyorum.
tarihleri sql den cekecem ve tarihler timestamp formatında. umarım derdimi anlatabilmişimdir. Şimdiden teşekkür ederim.
Php Server zamanına Göre Dün Bugün Yarın Geçen Ay vs..
7
●6.190
- 04-03-2013, 10:01:41Kimlik doğrulama veya yönetimden onay bekliyor.Hocam bir gün 24 saat*60 dakika*60 saniye = 86400 saniyedir. Bu bir kenarda dursun.
Önce timezone ayarlayalım.
date_default_timezone_set("Turkey");Bununla Türkiye için geçerli saat ve tarihi kullanacağımızı belirledik.
Mesela bugünün tarihini gün-ay-yıl şeklinde alalım.
$tarih = date("d-m-Y"); $tarihsaat = date("d-m-Y H:i:s");Bu kodları echo ile yazdırırsak şu sonuçları verir. Bu cevabı yazarkenki an için.
04-03-2013 04-03-2013 09:51:24
Örneğin sen iki gün öncesinin bilgisini almak istiyorsun. Bu tarih saatten tam iki gün öncesi.
$tarih = date("d-m-Y",time()-2*86400); $tarihsaat = date("d-m-Y H:i:s",time()-2*86400);Bunları yazdırırsak şunlar gelir.
02-03-2013 02-03-2013 09:51:24
Diyelim ki veritabanında timestamp olarak 1362214200 değerini tutuyorsun. Bunun tarih ve tarihsaat olarak karşılığını almak istiyorsun.
$timestamp = 1362214200; $tarih = date("d-m-Y,", $timestamp); $tarihsaat = date("d-m-Y H:i:s", $timestamp);Bu kodları yazdırırsak, 1362214200 timestamp değerine karşılık gelen
gün-ay-yıl gün-ay-yıl saat:dakika:saniye
verilerine ulaşmış olursun. Yada belki saçma ama sadece o timestamp değerine karşılık gelen saatin dakika değeri lazım sana.
$dakika = date("i", $timestamp);İşte bu kadar. Son olarak diyelim ki 1362214200 timestamp değerinden 2 gün öncesini mi istiyorsun? Neydi 2 gün? 2*86400. Buyur.
$timestamp = 1362214200-2*86400; $tarih = date("d-m-Y,", $timestamp); $tarihsaat = date("d-m-Y H:i:s", $timestamp);2 gün öncenin tarihine gittin. Aynı şekilde 5 gün sonrasının tarihine de şu şekilde ulaşırız. 5 gün eşittir 5*86400. Bu kez timestamp değerinden çıkarmayacağız toplayacağız.
$timestamp = 1362214200+5*86400; $tarih = date("d-m-Y,", $timestamp); $tarihsaat = date("d-m-Y H:i:s", $timestamp); - 04-03-2013, 14:41:10tam olarak istediğim bu değil siz dediğim tam olarak anlamamışsınız sanırım.
mesela şuan server tarihi 04.03.2013 14:36 diyelim ki benim daha onceden sqlde kayıtlı içerigimin tarihi 02.03.2013 12:00 (saatin çok önemi yok sadece tarih iş görür).
ben öyle bir değişken tanımlayım ki server saatine göre benim içerigim tarih cıktısı 2 gün önce diye ekrana vursun.
ya da içerigimin tarihi 25.02.2013 olsun içerik 1 hafta önce eklenmiş gibi bir ibare yapmak istiyorum bunu. "Dün - Yarın - Bugün gibi ibareler koymak istiyorum" bir de mesela içerigin tarihi 07.02.2013 şeklindeyse sql de bunu server tarihi 04.03.2013 iken Perşembe günü diye çıkartmak istiyorum. 2 günden sonrasını gün yazacak vs...şeklinde - 04-03-2013, 22:13:49İstediğinize benzer bi iş yapan bi fonksiyon yazmıştım daha önce. Önceki tarihi veriyorsunuz, şu andan itibaren geçen zamanı hesaplıyor. İsteğinize göre şekillendirmeniz mümkün.
function seker_zaman($unix) { $diff = time() - $unix; $times = array( array(3600, 60, 'dakika'), array(86400, 3600, 'saat'), array(604800, 86400, 'gün', 'Dün'), // sonuç "1 gün" ise, onun yerine "Dün" yazar array(2592000, 604800, 'hafta', 'Geçen hafta'), // sonuç "1 hafta" ise, onun yerine "Geçen hafta" yazar array(31104000, 2592000, 'ay', 'Geçen ay') // sonuç "1 ay" ise, onun yerine "Geçen ay" yazar ); if ($diff < 60) return '1 dakikadan kısa bir süre önce'; foreach ($times as $time) { if ($diff < $time[0]) return (isset($time[3]) ? $time[3] : floor($diff / $time[1]) . ' ' . $time[2] . ' önce'); } return seker_tarih($unix); } function seker_tarih($unix) { return strftime('%e %B %Y %A, %H:%I', $unix); } - 05-03-2013, 00:40:19Evet ben yanlış anlamışım, kusura bakmayın. Arkadaşın verdiği kodlar yardımcı olur. Ayrıca diğer arkadaşın dediği gibi timeago eklentisi de çok iyi.ufukt51 adlı üyeden alıntı: mesajı görüntüle