В моих базах данных я храню даты как int, так как метка времени unix, количество секунд с 1 января 1970 года. Таким образом, если я хочу выбрать диапазон (например, только месяц марта), я могу использовать mktime
:
$query = mysql_query("SELECT * FROM `events` WHERE `date` > ".mktime(0,0,0,3,1,2011). " AND `date` < ".mktime(0,0,0,4,1,2011));
Вы можете перебирать месяцы следующим образом:
for($i=1; $i<=12; $i++){
$query = mysql_query("SELECT * FROM `events` WHERE `date` > ".mktime(0,0,0,$i,1,2011). " AND `date` < ".mktime(0,0,0,$i+1,1,2011));
$monthName = date("F",mktime(0,0,0,$i,1,2011)); // full name of the month; use "M" for short-name
// ... your code for printing the events here
}
Я бы помог с типом данных date
, но я не использовал его.