Süre içinde, her ayın ilk ve son günleri bulma

0 Cevap php

Ben veritabanı sonuçlarına göre web sitesi makale istatistikleri yapmak için bir görev var. Ben makalelerin miktarı aylık eklendi hesaplamak ve JavaScript istatistikler işlevine bu sonuçları geçmek gerekir.

Ben ne yapıyorum İlk yazıları eklenmiştir edildiği bütün dönemi bulmak:

SELECT MIN(date) as startdate FROM articles LIMIT 1 

SELECT MAX(date) as enddate FROM articles LIMIT 1

Şimdi $startDate ile başlar ve $endDate ile biter dönemi var. Onlar veritabanında olduğu gibi bu değişkenler unix zaman damgaları vardır. Veritabanındaki sütun date de Unix zaman damgası.

Sonra, ben makalelerin miktarı gibi foreach döngüsü içinde bir sorgu yaparken her ay eklenmiştir bulmak gerekir:

SELECT COUNT(id) as total FROM articles 
    WHERE date > ".$startMonth." AND date < ".$endMonth

Ama döneminde her ayın ilk ve son gün bulmak gerektiğini yapmak için. Ve ben şu anda şaşırıp kalmış. Yani dizideki gibi bu ilk ve son gün bulmak için nasıl bana tavsiye lütfen yapabilir lütfen. I $startDate eşittir $endDate kadar bir süre döngü strtotime("+1 month",$date) gibi bir şey yapmak gerektiğini düşünüyorum. Şimdiden teşekkürler.

Upd. veritabanında toplam 46 makaleleri vardır. Ben sonuçları aya göre gruplandırılmış olması razıyım Ne:

SELECT date, COUNT(id) as total FROM `articles`
  WHERE `author`=$author
     GROUP BY date_format(date, '%Y-%m')

results: month posts 11-2010 13 12-2010 33

0 Cevap