lostyazilim
tr.link

PHP ilginç hata

4 Mesajlar 573 Okunma
acebozum
tr.link

sovetski sovetski ♛ PHP ♛ Kimlik Onayı
  • Ü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
 

 

elektronikssl
webimgo

EmirKutlu EmirKutlu PHP | Sosyal Medya Kullanıcı
  • Ü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 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';
}

?>
 

 

sovetski sovetski ♛ PHP ♛ Kimlik Onayı
  • Ü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)

Kakarotto adlı üyeden alıntı

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';
}

?>



Zaten öyle yaptım :D fakat buraya öyle uzun olmasın diye yazmadım karışık görünür yoksa :D Teşekkürler bu arada :cool:
 

 

wmaraci
wmaraci
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al