Source of file NetefxValidatorLibraryDate.php
Size: 5,392 Bytes - Last Modified: 2021-12-23T10:02:33+00:00
/var/www/docs.ssmods.com/process/src/code/libraries/NetefxValidatorLibraryDate.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 | <?php /** * LibraryFunctions for Dates for NetefxValidator * * @version 0.7 (19.09.2011) * @package NetefxValidator */ class NetefxValidatorLibraryDate { // ************************ Often used functions for validation ********************** /** Date is at least x days in past * * $rule_past_1 = new NetefxValidatorRuleFUNCTION ("End", "End must be in past",'error', * array('NetefxValidatorLibraryDate', 'DateIsMinDaysBeforeToday', array('date' => 'End', 'min' => 1))); */ static function DateIsMinDaysBeforeToday ($data, $args) { $field_date = $args["date"]; // A) date is defined as a date (YYYY-MM-DD) if (preg_match('/[\d]{4}+[\-]+[\d]{2}+[\-]+[\d]{2}/',$field_date)) { $date = $args["date"]; } // B) date is defined as the name of another inputfield else { $date = $data[$field_date]; } $today1 = getdate(); $today = $today1["year"]."-".$today1["mon"]."-".$today1["mday"]; $min = (int)$args["min"]; if ($date=="") return false; $timestamp_dateFrom = strtotime($date); $timestamp_dateUntil = strtotime($today); $days_dif = ($timestamp_dateUntil - $timestamp_dateFrom)/86400; return ($days_dif >= $min); } /** Date is at least x days in future * * $rule_future_1 = new NetefxValidatorRuleFUNCTION ("Begin", "Begin must be at least for days in future",'error', * array('NetefxValidatorLibraryDate', 'DateIsMinDaysAfterToday', array('date' => 'Begin', 'min' => 4))); * */ static function DateIsMinDaysAfterToday ($data, $args) { $field_date = $args["date"]; // A) date is defined as a date (YYYY-MM-DD) if (preg_match('/[\d]{4}+[\-]+[\d]{2}+[\-]+[\d]{2}/',$field_date)) { $date = $args["date"]; } // B) date is defined as the name of another inputfield else { $date = $data[$field_date]; } $today1 = getdate(); $today = $today1["year"]."-".$today1["mon"]."-".$today1["mday"]; $min = (int)$args["min"]; if ($date=="") return false; $timestamp_dateUntil = strtotime($date); $timestamp_dateFrom = strtotime($today); $days_dif = ($timestamp_dateUntil - $timestamp_dateFrom)/86400; return ($days_dif >= $min); } /** date B is at least x days after date A * * $rule_time_1 = new NetefxValidatorRuleFUNCTION ("End", "Begin must not be after End",'error', * array('NetefxValidatorLibraryDate', 'UntilIsMinDaysAfterFrom', array('dateFrom' => 'Begin', 'dateUntil' => 'End', 'min' => 0))); * */ static function UntilIsMinDaysAfterFrom ($data, $args) { $field_dateFrom = $args["dateFrom"]; // A) dateFrom is defined as a date (YYYY-MM-DD) if (preg_match('/[\d]{4}+[\-]+[\d]{2}+[\-]+[\d]{2}/',$field_dateFrom)) { $dateFrom = $args["dateFrom"]; } // B) dateFrom is defined as the name of another inputfield else { $dateFrom = $data[$field_dateFrom]; } $dateUntil = $data[$args["dateUntil"]]; $min = (int)$args["min"]; if (($dateFrom=="") OR ($dateUntil=="")) return false; $timestamp_dateFrom = strtotime($dateFrom); $timestamp_dateUntil = strtotime($dateUntil); $days_dif = ($timestamp_dateUntil - $timestamp_dateFrom)/86400; return ($days_dif >= $min); } /** * date B is at least x days after date A (both empty allowed) * */ static function UntilIsMinDaysAfterFromOptional ($data, $args) { $field_dateFrom = $args["dateFrom"]; // A) dateFrom is defined as a date (YYYY-MM-DD) if (preg_match('/[\d]{4}+[\-]+[\d]{2}+[\-]+[\d]{2}/',$field_dateFrom)) { $dateFrom = $args["dateFrom"]; } // B) dateFrom is defined as the name of another inputfield else { $dateFrom = $data[$field_dateFrom]; } $dateUntil = $data[$args["dateUntil"]]; $min = (int)$args["min"]; if (($dateFrom=="") AND ($dateUntil=="")) return true; if (($dateFrom=="") OR ($dateUntil=="")) return false; $timestamp_dateFrom = strtotime($dateFrom); $timestamp_dateUntil = strtotime($dateUntil); $days_dif = ($timestamp_dateUntil - $timestamp_dateFrom)/86400; return ($days_dif >= $min); } } |