2012-08-02 14 views
6

Bir kullanıcının MySQL veritabanına web sitemde bir eylem gerçekleştirdiği tarihi ve saati depolamak istiyorum. tarih-zaman oluşturmak içinDaha sonra PHP ile görüntülemek için MySQL veritabanında tarih ve saat saklamanın en iyi yolu nedir?

  • Mağaza bir PHP veya MySQL işlevi inşa veritabanı
  • kullanın bir alan olarak tarih ve saati: Ben kolaylıkla takip yapabilmek istiyorum action
  • Tarih saatimi sunucumun saatine göre depolar ve kullanıcı saat dilimlerini endişe etmeyin.
  • Order By Ben
  • Daha sonra MySQL sorgu pek çok farklı biçimlerde tarih-zaman görüntülemek tarih-saat alan PHP yöntemlerinde inşa kullanarak İşte

sorularım şunlardır:

  • neler veri türü MySQL'de kullanmalıyım (örn. timestamp, datetime ...)?
  • Tarih saatini oluşturmak için hangi yöntemi kullanmalıyım (ör. MySQL'in now(), PHP'nin date() ...)?
  • Daha sonra PHP yöntemini çeşitli şekillerde biçimlendirmek için ne gibi bir yöntem kullanmalıyım (örneğin, 23/4/2012, Pazartesi, Temmuz 2012, 17: 00).
+1

[Daha önce sorulmamış mıydı] (http://stackoverflow.com/questions/409286/datetime-vs-timestamp)? – Matt

cevap

2

Bunu zaman damgası olarak değil, zaman damgası olarak saklarım.

Normalde PHP tarih fonksiyonunu kullanıyorum ve bu sayede kullanıcının saat dilimi ile ilgili zamanı saklamak istiyorsanız, kullanıcının saatlerine göre zaman dilimini değiştirebilirsiniz.

Veritabanından çıkardığınızda strtotime() işlevini kullanarak dönüştürün, sonra istediğiniz tarihi görüntülemek için tüm date() özelliklerini kullanabilirsiniz. Örnek:

olmayan bir null zaman damgasına MySQL veri türü ayarlarsanız
echo date('F j, Y',strtotime($db_datetime)); //Displays as 'March 5, 2012' 
0

, o sütun için boş değer içeren satırları kaydetmek, mysql sizin için otomatik olarak zaman damgası güncelleyecektir.

Tekrar okumak için, ihtiyacınız olan formatta almak için php'nin strtotime'ını ve tarih nesnesini kullanabilirsiniz.

0

Gereksiniminiz için datetime veri türünü kullanmalısınız. Sorunuza bağlı olarak giriş alanınızdan hem tarih hem de saati depolar.

Tarihsadı almak için mysql'in date_format() işlevini veya PHP'nin date() işlevini kullanabilirsiniz. Tarih datetime, her zaman istemcinin saatinde değil, sunucunun zamanına göre depolanır.

İlgili konular