Arşiv Builder PHP

1 Cevap php

I id ive bir tartışmanın daha ziyade Sorun Soru olarak bu soru haberi söylemek istiyorum başlamadan önce.

Benim Veritabanı i haber mesaj var 3 sütun (id, başlık, tarih) ile Diyelim ki. Tarih, diğer bir deyişle, mktime () değerleri saklanır Explanitory Kimliği ve başlık kendinden nereye 1 Ocak 1970 tarihinden beri geçen saniye sayısı.

Şimdi ne yapmak istediğim gibi gösterecektir bir arşiv linki inşa

  • Temmuz 2009
  • Haziran 2009
  • Mart 2009
  • Feburary 2009
  • Aralık 2008

Note the months on which there were no posts are not displayed.

Şimdi ben düşünüyordum ilk düşünce olarak

  1. Geçerli Ayın son günü ile başlayın
  2. Ve mevcut Ayın İlk günün değerini almak
  3. MySQL tarih vardı mesajların için Sorgu / mysql_num_rows SAYIM musun> = First_Day_Seconds AND tarih <= Last_Day_Seconds
  4. Göster ya da bir Array değerleri koymak
  5. Başka değerler NEREDE tarihi

Şimdi yukarıdaki başımın üstünde sadece bir şeydir. Bu işlemi hızlandırmak için herhangi bir fikir var Ama lütfen paylaşın.

Önceden diyecekler, tarih mktime biçiminde olması gerekir

1 Cevap

Ben bir veritabanı "yerli" zaman biçimini kullanarak öneririm, ama aynı zamanda damgaları UNIX ile çalışır.

Sadece yapabilirsiniz:

SELECT DISTINCT FROM_UNIXTIME(date, '%M %Y') FROM posts;

İsteğe bağlı bir WHERE fıkra geçmiş veya gelecek tarihleri ​​tarihleri ​​sınırlayıcı ile. Muhtemelen bir ORDER fıkra iyi ölçmek için atılmış. Bu veritabanı mümkün olduğunca çok iş yapalım, hemen hemen tüm ihtiyaç duyulan olmalıdır.

Daha fazla biçimlendirme seçeneklerini gerekiyorsa, bunun yerine "%Y-%m" ile tarihleri ​​seçin ve PHP bunları biçimlendirmek:

date($myCustomFormat, strtotime("$date-01"));