Cevaplar
-
Selam, bircok yolu var ben olsam, kayit gununu yil.ay.gun olarak kaydederim ilk once. Yani 20120515 olarak. Sonra bugunun tarihin yine ayni sekilde alirim ve kayit tarihinden cikarip aradaki gun sayisini bulup yazdiririm. Bu tarih fonksyonunun yazilis sekli sanirim date(Ymd); idi. Telefonda yazdgm icin bakamiyorum su an.
-
besimler
Bu arada varchar kullanabilirsin. Cunku mysql in date veya time finksyonlari icinden cikilamaz halde gorunebilir. Ayni sekilde saniyesine kadar bulabilirsin. Tabi ay atlamalarini da dikkata almalisin.11 yıl önce yazılmış
-
-
Daha öncede yazdım tekrar ekleyim , database alanını datetime olarak seç.Diyelimki veritabanından aldığın tarih 2011-09-20 17:00:43 olsun bunu
$belirliGun = strtotime('2011-09-20 17:00:43');
şeklinde alalım.Güncel tarihi alalım;$suan=strtotime(date("j-n-Y H:i:s"));
Fonksiyonu çalıştıralım;echo sureHesapla($belirliGun,$suan,5);
b
buda sana3 gun 7 saat 20 dakika 49 saniye once
şeklinde bir çıktı verecektir.
Fonksiyonfunction sureHesapla($zaman,$suan,$ayrinti=2){ $tarihler=array(365*24*60*60 => "yil", 30*24*60*60 => "ay", 7*24*60*60 => "hafta", 24*60*60 => "gun", 60*60 => "saat", 60 => "dakika", 1 => "saniye"); if($suan>$zaman){ $gecen=$suan-$zaman; if($gecen<5){$cikti='5 Saniyeden daha az sure once.';} }else{ $gecen=$zaman-$suan; if($gecen<5){ $cikti='5 Saniyeden daha az sure gecmis.';} } $cikti=array(); $cikis=0; if($gecen>5){ foreach($tarihler as $sayi=>$kelime){ if($cikis>=$ayrinti || ($cikis<0 && $sayi<60)) break; // ara sureyi bulalim $arasure=floor($gecen/$sayi); if($arasure>0){ $cikti[]=$arasure.' '.$kelime; $gecen-=$arasure*$sayi; $cikis++; }else if($cikis>0) $cikis++; } $cikti=implode(' ',$cikti).' once'; } return $cikti; }
-
sharq
arkadaşım 5 sn'ye geip geçmediğini hesaplatmıcam :S
veri tabanına yorum kaayıtt edileli nekkadar geçmiş onu UhesaSPlatacaCğım :s11 yıl önce yazılmış -
xuma
Sana fonksiyonun çıkıtısınıda yazdım3 gun 7 saat 20 dakika 49 saniye once
gibi.Sana yorumunun ,ürününün vs'nin nekadar süre önce kaydedildiğini gösterir.Yil ,ay, hafta vs olarak ama sanırım benden bu kadar, ben durumu anlatmak konusunda yetersizim.Umarım diğer arkadaşlar yardımcı olur.11 yıl önce yazılmış -
sharq
.s yok yetersiz deilde çıktı 5 sn daha az geçmiş falan yazıyor öle olmicak yani düz olcak nyse haltmeye çalşrım mntğnı anlyamadım sadece11 yıl önce yazılmış -
PsyChQPaTh
Kod gerçekten başarılı,
Php sayfasında üst kısıma;date_default_timezone_set('Europe/Istanbul');
şeklinde eklediğimde doğru ve başarılı sonuç verdi.11 yıl önce yazılmış
-
-
aşağıdaki kod tam olarak istediğin işi yapıyor sen sadece vt den gelmesi gereken verileri doğru getir yerine yaz
ama "xuma" nın verdiği fonksiyon oldukça yeterli idi keşke hemen ben şunu istemiyorum demek yerine biraz deneme yapsaydın daha faydalı olurdu kanısındayım
$kayityili="2011"; //BURASI VERİ TABANINDAN GELECEK $kayitay="03"; //BURASI VERİ TABANINDAN GELECEK $kayitgun="19"; //BURASI VERİ TABANINDAN GELECEK $kayitsaat="00"; //BURASI VERİ TABANINDAN GELECEK $kayitdakika="00"; //BURASI VERİ TABANINDAN GELECEK $kayitsaniye="00"; //BURASI VERİ TABANINDAN GELECEK $simdiki_yil=date("Y"); $simdiki_ay=date("m"); $simdiki_gun=date("d"); $simdiki_saat=date("H"); $simdiki_dakkika=date("i"); $simdiki_saniye=date("s"); $toplam_saniye=mktime($simdiki_saat, $simdiki_dakkika, $simdiki_saniye, $simdiki_ay, $simdiki_gun, $simdiki_yil) - mktime($kayitsaat, $kayitdakika, $kayitsaniye, $kayitay, $kayitgun, $kayityili); $zaman_dizisi = array(' Yıl'=> $toplam_saniye / 31556926 % 12,' Ay'=> $toplam_saniye / 604800 % 52,' Gün'=> $toplam_saniye / 86400 % 30,' Saat'=> $toplam_saniye / 3600 % 24, ' Dakika' => $toplam_saniye / 60 % 60, ' Saniye' => $toplam_saniye % 60 ); foreach($zaman_dizisi as $degisken => $deger){ if($deger > 1)$gecen_zaman[] = $deger . $degisken ; if($deger == 1)$gecen_zaman[] = $deger . $degisken; } array_splice($gecen_zaman, count($gecen_zaman)-1, 0, 've'); $gecen_zaman[] = 'önce eklendi.'; $yazilacak_zaman= join(' ', $gecen_zaman); echo $yazilacak_zaman;