// The ttTimeHelper is a class to help with time-related values.
class ttTimeHelper {
+ // isWeekend determines if $date falls on weekend.
+ static function isWeekend($date) {
+ $weekDay = date('w', strtotime($date));
+ return ($weekDay == WEEKEND_START_DAY || $weekDay == (WEEKEND_START_DAY + 1) % 7);
+ }
+
+ // isHoliday determines if $date falls on a holiday.
+ static function isHoliday($date) {
+ global $i18n;
+ // $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;
+
+ return false;
+ }
+
// isValidTime validates a value as a time string.
static function isValidTime($value) {
if (strlen($value)==0 || !isset($value)) return false;
if ($value == '24:00' || $value == '2400') return true;
if (preg_match('/^([0-1]{0,1}[0-9]|2[0-3]):?[0-5][0-9]$/', $value )) { // 0:00 - 23:59, 000 - 2359
- if ('00:00' == ttTimeHelper::normalizeDuration($value))
- return false;
return true;
}
if (preg_match('/^([0-1]{0,1}[0-9]|2[0-4])h?$/', $value )) { // 0, 1 ... 24
- if ('00:00' == ttTimeHelper::normalizeDuration($value))
- return false;
return true;
}
if (preg_match('/^([0-1]{0,1}[0-9]|2[0-3])?[.][0-9]{1,4}h?$/', $value )) { // decimal values like 0.5, 1.25h, ... .. 23.9999h
- if ('00:00' == ttTimeHelper::normalizeDuration($value))
- return false;
return true;
}