Приднестровская поддержка XOOPS
Создав необходимую инфраструктуру в целом, можно вернуться к конструктору класса Calendar и заняться его окончательной доработкой.
Проверив наличие объекта базы данных, конструктор должен сохранить определенную информацию о месяце, который будет использоваться при построении календаря.
Прежде всего конструктор проверяет, передана ли ему дата; если это так, то он сохраняет ее в свойстве $_useDate, в противном случае использует текущую дату.
После этого дата преобразуется в отметки времени UNIX (исчисляются в секундах от начала "эры UNIX"(1); более подробно об этом можно прочитать в статье Википедии по адресу UNIX-время), на основании которых рассчитываются значения года и месяца, которые сохраняются соответственно в переменных $_m и $_y.
Наконец, значения, сохраненные в переменных $_m и $_y, используются для того, чтобы определить, сколько дней содержит используемый месяц и с какого дня недели он начинается.
Соответствующую функциональность в конструкторе обеспечивает фрагмент кода, выделенный ниже желтым фоном:
<?php
class Calendar extends DB_Connect
{
private $_useDate;
private $_m;
private $_y;
private $_daysInMonth;
private $_startDay;
public function __construct($dbo=NULL, $useDate=NULL)
{
/*
* Вызвать конструктор родительского класса для проверки
* существования объекта базы данных г
*/
parent::__construct($dbo);
/*
* Собрать и сохранить информацию, относящуюся к месяцу
*/
if ( isset($useDate) )
{
$this->_useDate = $useDate;
}
else
{
$this->_useDate = date('Y-m-d H:i:s');
}
/*
* Преобразовать во временную метку UNIX, а затем
* определить месяц и год, которые следует использовать
* при построении календаря
*/
$ts = strtotime($this->_useDate);
$this->_m = date('m', $ts);
$this->_y = date('Y', $ts);
/*
* Определить количество дней, содержащихся в месяце
*/
$this->_daysInMonth = cal_days_in_month(
CAL_GREGORIAN,
$this->_m,
$this->_y
);
/*
* Определить, с какого дня недели начинается месяц
*/
$ts = mktime(0, 0, 0, $this->_m, 1, $this->_y);
$this->_startDay = date('w', $ts);
}
}
?>
При перезагрузке страницы http://localhost/ все свойства, значения которых ранее были равны NULL, получат нужные значения.
Отправитель | Нити |
---|
3 пользователь(ей) активно (2 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 3 далее... |