Как я могу сделать календарь с данными MYSQL? - PullRequest
2 голосов
/ 10 сентября 2009

В моей базе данных есть несколько дней с данными, а некоторые без; У меня есть один столбец с данными, а другой столбец с датой и временем. Поэтому я хочу создать этот календарь. Таким образом, он покажет все дни месяца, а затем дни с данными будут гиперссылкой.

Когда я нажму на ссылку, она покажет все данные, представленные в этот день. Я бы, вероятно, использовал цикл в первом цикле. Один на месяц, а затем один для отображения каждый день.

Однако, учитывая, что каждый месяц года имеет разное количество дней, а также високосный год, я не знаю, как написать условия.

Любая помощь или руководство приветствуется.

Ответы [ 2 ]

1 голос
/ 10 сентября 2009
$start = '2009-01-01';
$current = strtotime($start);
while(date('n',$current)==date('n',strtotime($start))) {
    // do your stuff here, $current includes the current date.
    // the loop will run through the complete month

    $current = strtotime(date('Y-m-d',$current) . '+1 day');
}
0 голосов
/ 10 сентября 2009

Сначала вам нужно узнать, в какой день недели начинается месяц, чтобы вы знали, сколько пустых ящиков выплевать. Затем выясните, сколько дней в этом месяце. Затем переберите свои дни, перенося на следующую строку после субботы. Затем заполните оставшуюся часть последнего ряда пустыми полями.

Есть некоторый довольно простой (и прокомментированный) код, который делает это здесь:

http://gitorious.org/wfpl/wfpl/blobs/master/calendar.php

Вы можете использовать этот код без остальной части фреймворка, для которого он предназначен, если просто переписать calender_day() (который вызывается для каждой ячейки в календаре с первым параметром, сообщающим вам, какой это день (не в месяц, имеет события, без событий) и переписать calendar_week(), который вызывается в конце каждой строки.

Или вы можете просто посмотреть, как делать соответствующие вещи, например узнать, как далеко через неделю начинается месяц, и так далее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...