public static function isHollidayHour($datetime) { //validate, if calendar fully loadded $sql = "\n SELECT \n cled_id\n FROM\n cled_calendar_exception_dates \n WHERE cled_date = DATE(:dt) \n OR cled_date = ADDDATE(DATE(:dt), 1) \n OR cled_date = ADDDATE(DATE(:dt), -1)\n "; $rawData = Yii::app()->db->createCommand($sql); $rawData->bindParam(":dt", $datetime, PDO::PARAM_STR); $cled_data = $rawData->queryAll(); //aizpildam esosho un nakamo gadu, ja nav 3 ierakstu if (count($cled_data) < 3) { $cled = new CledCalendarExceptionDates(); $cled->fillYear(date('Y')); $cled->fillYear(date('Y') + 1); } /** * peec kalendara paskatās: * - vai svētdiena un brīvdiens * - ir svetkudiena * - pirms no 23:00 * - pēc līdz 6:00 */ $sql = "\n SELECT MAX(\n CASE\n WHEN cled_type = 'Holliday' \n AND WEEKDAY(cled_date) = 6 \n THEN 1 \n WHEN cled_type = 'Public Holliday' \n THEN 1 \n ELSE 0 \n END) is_extra_date \n FROM\n cled_calendar_exception_dates \n WHERE cled_date = DATE(:dt) \n OR cled_date = DATE(ADDDATE(:dt, INTERVAL 1 HOUR)) \n OR cled_date = DATE(ADDDATE(:dt, INTERVAL - 6*60*60 - 1 SECOND))\n "; $rawData = Yii::app()->db->createCommand($sql); $rawData->bindParam(":dt", $datetime, PDO::PARAM_STR); return $rawData->queryScalar() == 1; }