// isHoliday determines if $date falls on a holiday.
static function isHoliday($date) {
global $user;
- global $i18n;
- if (!$user->show_holidays) return false;
-
- // $date is expected as string in DB_DATEFORMAT.
- $month = date('m', strtotime($date));
- $day = date('d', strtotime($date));
- if (in_array($month.'/'.$day, $i18n->holidays))
- return true;
+ $holidays = $user->getHolidays();
+ if (!$holidays)
+ return false;
+ $holiday_dates = explode(',', $holidays);
+ foreach ($holiday_dates as $holiDateSpec) {
+ if (ttTimeHelper::holidayMatch($date, $holiDateSpec))
+ return true;
+ }
return false;
}
+ // holidayMatch determines if $date matches a single $holiDateSpec.
+ static function holidayMatch($date, $holiDateSpec) {
+
+ $dateArray = explode('-', $date);
+ $holiDateSpecArray = explode('-', $holiDateSpec);
+
+ // Check year.
+ if ($dateArray[0] != $holiDateSpecArray[0] && $holiDateSpecArray[0] != '****') // **** means all years.
+ return false;
+ // Check month.
+ if ($dateArray[1] != $holiDateSpecArray[1])
+ return false;
+ // Check day.
+ if ($dateArray[2] != $holiDateSpecArray[2])
+ return false;
+
+ return true;
+ }
+
+ // dateInDatabaseFormat prepares a date string in DB_DATEFORMAT out of year, month, and day.
+ static function dateInDatabaseFormat($year, $month, $day) {
+ $date = "$year-";
+ if (strlen($month) == 1) $date .= '0';
+ $date .= "$month-";
+ if (strlen($day) == 1) $date .= '0';
+ $date .= $day;
+ return $date;
+ }
+
// isValidTime validates a value as a time string.
static function isValidTime($value) {
if (strlen($value)==0 || !isset($value)) return false;