Wrote a validation routine for holidays.
[timetracker.git] / WEB-INF / lib / common.lib.php
index e295075..b19feac 100644 (file)
@@ -143,11 +143,6 @@ function time_to_decimal($val) {
   return $decimalTime;
 }
 
-function sec_to_time_fmt_hm($sec)
-{
-  return sprintf("%d:%02d", $sec / 3600, $sec % 3600 / 60);
-}
-
 function magic_quotes_off()
 {
   $_POST = array_map('stripslashes_deep', $_POST);
@@ -354,6 +349,23 @@ function ttValidIP($val, $emptyValid = false)
   return true;
 }
 
+// ttValidHolidays is used to check user input to validate holidays spec.
+// To keep things simple, the format is a comma-separated list of dates:
+// ****-01-01,****-12-31,2019-04-20
+// The above means Jan 1 and Dec 31 are holidays in all years, while Apr 20 is only in 2019.
+function ttValidHolidays($val)
+{
+  $val = trim($val);
+  if (strlen($val) == 0) return true;
+
+  $dates = explode(',', $val);
+  foreach ($dates as $date) {
+    if (!preg_match('/^[\d*]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/', $date))
+      return false;
+  }
+  return true;
+}
+
 // ttAccessAllowed checks whether user is allowed access to a particular page.
 // It is used as an initial check on all publicly available pages
 // (except login.php, register.php, and others where we don't have to check).