Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

mktime ve time kullanımı arasındaki fark ve avantajlar nelerdir?

mysql+php ile yazılmış çeşitli uygulamalarda bazısı mysql alan türü olarak datetime kullanırken bazısı da int(10) alan türü ike mktime 1312907280 şeklinde tarih yazdırıyorlar.

DateTime tamam anladık ama mktime niçin tercih edilir?
DateTime ye göre mktime nin bir üstünlüğü ya da fonksiyonelliği var mıdır?

iki tarih arasında sorgulama yaparken daha az kod kullanmak daha kısa işlemlerle işleri halletmek ve daha fonksiyonel olmak adına hangisi niçin kullanılmalıdır...
+1
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • 2
    madpoet adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    84 cevap - 1 soru
    Öncelikle MySQL'de timestamp diye bir alan var aslında ama neden integer alan kullanılıyor ondan bahsedelim...

    MySQL'de şöyle garip bir davranış var: Tablodaki ilk timestamp alanda otomatik olarak bir trigger çalışır: Satır update edildiğinde bu ilk alan da otomatik olarak update edilir (en azından eski versiyonlarda bu böyleydi, son zamanlarda değiştiyse bilemem). Eğer bunun bu şekilde olmasını istemiyorsanız integer alana timestamp kaydedersiniz.

    Peki neden datetime değil timestamp derseniz de, aklıma gelen tek mantıklı neden timezone hesaplamaları ile ilgili olabilir. Timestamp biliyorsunuz 1.1.1970 00:00:00 (UTC) tarihinden bu yana geçen saniye miktarıdır. Dolayısıyla kayıtlı tarihten örneğin "3 saat öncesi"ni hesaplamak istiyorsanız timestamp daha pratik olabilir. Eğer yazılımınız birden fazla ülkeden kullanılmıyorsa bunun da bir önemi kalmıyor.

    Onun dışında datetime her zaman daha pratik, date_add gibi fonksiyonları kullanıp istediğiniz zaman unix_timestamp ile timestamp'i alabilirsiniz. Timezone desteği de var. Veritabanını doğrudan incelemeniz gerektiğinde de tarihler daha kolay okunur öteki türlü formatlamanız gerekecek...
    • zyber adlı üyenin fotoğrafı zyber
      Açıklamanız için teşekkürler.
      İki timestampdan birini güncellerken diğerininde güncellenmesini de öğrenmiş olduk.

      peki mesala doğum tarihi diyelim datetime ile yaptık ve güncelleme sayfasına select menü içine gün ay yıl şeklinde göstermek istediğimizde de sanki datetime daha fonksiyonel gibi.
      10 yıl önce yazılmış