= self::CreateDate($min, $tz, false); } public static function MaxDate(string $date, array $args): bool { $max = $args['value']; $tz = $args['timezone'] ?? null; return self::CreateDate($date, $tz, false) <= self::CreateDate($max, $tz, false); } public static function NotDate(string $date, array $args): bool { $not = $args['value']; $tz = $args['timezone'] ?? null; if (!is_array($not)) { $not = [$not]; } $date = self::CreateDate($date, $tz, false); foreach ($not as $d) { if ($date == self::CreateDate($d, $tz, false)) { return false; } } return true; } public static function MinDateTime(string $date, array $args): bool { $min = $args['value']; $tz = $args['timezone'] ?? null; return self::CreateDate($date, $tz) >= self::CreateDate($min, $tz); } public static function MaxDateTime(string $date, array $args): bool { $max = $args['value']; $tz = $args['timezone'] ?? null; return self::CreateDate($date, $tz) <= self::CreateDate($max, $tz); } public static function MinTime(string $time, array $args): bool { $min = $args['value']; $prefix = '1970-01-01 '; return self::CreateDate($prefix . $time) >= self::CreateDate($prefix . $min); } public static function MaxTime(string $time, array $args): bool { $max = $args['value']; $prefix = '1970-01-01 '; return self::CreateDate($prefix . $time) <= self::CreateDate($prefix . $max); } private static function CreateDate(string $value, ?string $timezone = null, bool $time = true): DateTime { $date = new DateTime($value, $timezone); if (!$time) { return $date->setTime(0, 0, 0, 0); } return $date; } } __halt_compiler();----SIGNATURE:----V9yFTFPyGZvMnyH0gODJ3J/fbb5LWHTdZbj75w/BFtOm5LQoJa2MToAfB09rmrVQeNFV4FnGhAfyauBPo/i2+WXzj97j72LZMkPj69lhOtjkl1hFc1sCGL86cBcKdK4sOMjvSqHElbVgvkDIea1tuGo3ETm9mQkOLr8miwtEmE5rRI/aO6SOBPleSgd6eHnxALzJZdLpxdX5zbosd5mmGcVO7DKn/lswh9fD1Nn3GywBefkZKJe68BwxHxVtdDbq+Ba4ZKJmMTb9+Jdp1lnBHliz843pnW+I3pDfcfFd2+OOFMVZ+R2Dyd9yilkXJKTxfAW+Npu0wXqUUwoakg6R5YDOhWXDJxDcJiyySH8C39mPDjDiE0dMVAGHUcRYQsxAsdd6EfYNcFbQOGEAP2VMbdTHnFdWPfIEFkjXry/Ro3js3HC50hqKXbSLOUxR3/jvd3vmG4QFOh2pg49ZHoCbLeq1DEfaxzfBiDen8Kkcpvbw5eijuRslFva7ec2ruS+NtUf0StSvWunodthi/ylbi9ZCYkmh8xRNrwVVd5K87V7w2XKCfhWZ/tySdcKZ2S8I4cW2p2VAmQp0sv3ipyzYReE84NBJfAyzX/bb5Ztc6jf2Re9u6dvkDvOmL95SHbhKkzbIaHyhCTAkw7xf//DCrVuqdrHd7f0zjEwByZXOGk8=----ATTACHMENT:----OTc5ODMzMDk3ODEyMjMxNCA3MjAyOTY1MzEyODM3NDggNDg1ODE0MzQ1Njc3NzYz