Tam anlamadım ama belirli zamanlara göre kayıtları çekmek istiyorsan sql tarafında şu şekilde yapabilirsin.
Not: Duruma göre count aldırıp toplamını getirebilirsin veya ip bazında gruplayıp kaç farklı ip olduğunu buldurabilirsin.
//Tabloyu yaratalım
CREATE TABLE sayac (
id int NOT NULL AUTO_INCREMENT,
ip varchar(100),
visit_date datetime,
PRIMARY KEY (id)
);
INSERT INTO sayac (ip, visit_date)
VALUES('191.168.1.1', NOW());
INSERT INTO sayac (ip, visit_date)
VALUES('191.168.1.1', DATE_ADD(NOW(), INTERVAL -10 DAY) ),
('191.168.1.1', DATE_ADD(NOW(), INTERVAL -10 DAY) ),
('191.168.1.1', DATE_ADD(NOW(), INTERVAL -50 DAY) ),
('191.168.1.1', DATE_ADD(NOW(), INTERVAL -1 DAY) ),
('191.168.1.1', DATE_ADD(NOW(), INTERVAL -360 DAY) ),
('191.168.1.1', DATE_ADD(NOW(), INTERVAL -10 DAY) ),
('191.168.1.1', DATE_ADD(NOW(), INTERVAL -10 DAY) ),
('191.168.1.1', DATE_ADD(NOW(), INTERVAL -20 DAY) ),
('191.168.1.1', DATE_ADD(NOW(), INTERVAL -40 DAY) ),
('191.168.1.1', DATE_ADD(NOW(), INTERVAL -10 DAY) )
;
//Sorgularımız
SELECT "Bugün" AS visit_time, sayac.* FROM sayac WHERE DATE(visit_date) = CURDATE();
SELECT "Dün" AS visit_time, sayac.* FROM sayac WHERE DATE(visit_date) = CURDATE() - 1;
SELECT "Bu yıl" AS visit_time, sayac.* FROM sayac WHERE YEAR(visit_date) = YEAR(NOW());
SELECT "Geçen yıl" AS visit_time, sayac.* FROM sayac WHERE YEAR(visit_date) = YEAR(NOW())-1;