-
Üyelik
03.08.2015
-
Yaş/Cinsiyet
27 / E
-
Meslek
Yazılımcı
-
Konum
Fransa
-
Ad Soyad
A** H**
-
Mesajlar
1205
-
Beğeniler
437 / 458
-
Ticaret
2, (%100)
Veritabanında bir tarih saklıyorum. Buda unix olarak kayıtlı.
Eğer o tarih bugünden büyükse diye böyle bir kod kullanıyordum
$bitecek = $sql['tarih'];
$son_tarih = date('d.m.Y H:i:s', $bitecek);
$bugun = date('d.m.Y H:i:s');
if ($son_tarih < $bugun)
{
echo 'Bitti';
}else{
echo 'Daha var';
}
Fakat bu gün tarih 31.08.2015 12:30:05 ve bitecek tarih 01:09:2015 12:30:05 olduğunda kod çalışmıyor..
İyiki farkettim dün kendi sitemde. Eğer benim gibi kontrol yapanlar varsa düzeltsin diye yazdım :)
Ben şöyle hallettim
$son_tarih= $sql['tarih'];
$bugun = time();
if ($son_tarih < $bugun)
{
echo 'Bitti';
}else{
echo 'Daha var';
}
Yani unix zaman farkı ile kontrol yapınca sorunsuz çalıştı umarım bu sefer doğru yaptım :)
İyi günler
-
Üyelik
16.08.2012
-
Yaş/Cinsiyet
26 / E
-
Meslek
Php |
-
Konum
İstanbul Anadolu
-
Ad Soyad
E** K**
-
Mesajlar
328
-
Beğeniler
39 / 85
-
Ticaret
40, (%100)
Son yazdığınız kod daha sağlıklı sonuç vermenizi sağlayacaktır ancak kullandığınız her tarih/zaman sistemlerinde
date_default_timezone_set('Europe/Istanbul');
Kodunu kullanırsanız zamanları her zaman aynı ve türkiye lokasyonlu çekeceği için sorunsuz sonuç alabilirsiniz.
3579
WM Aracı
Anonim Üyelik
-
Üyelik
30.01.2012
-
Yaş/Cinsiyet
- /
-
Meslek
-
Konum
-
Ad Soyad
** **
-
Mesajlar
2434
-
Beğeniler
686 / 1151
-
Ticaret
1, (%100)
time() fonksiyonu her zaman için iyidir ama diğer türlü de sıralama yapabilirdin.
strtotime() fonksiyonu ile d.m.Y H:i:s şeklindeki tarihi yine normal time() fonksiyonundan dönen tarih biçimine çevirebilirdin. :)
$bitecek_tarih = "01.09.2015 12:30:05";
$simdiki_tarih = time();
// Daha var mı?
if(strtotime($bitecek_tarih) > $simdiki_tarih){
print ''.$bitecek_tarih.' tarihine daha var kanka.
biz su anda '. date('d.m.Y H:i:s').' tarihindeyiz';
}
else{
print 'Bitmis';
}
?>