Browse Source

[fix] comment and regexp

tanden 5 years ago
parent
commit
d7cedc6344
2 changed files with 8 additions and 3 deletions
  1. 2 3
      src/Validation/Validation.php
  2. 6 0
      tests/TestCase/Validation/ValidationTest.php

+ 2 - 3
src/Validation/Validation.php

@@ -701,8 +701,7 @@ class Validation
 
     /**
      * Time validation, determines if the string passed is a valid time.
-     * Validates time as 24hr (HH:MM) or am/pm ([H]H:MM[a|p]m)
-     * Does not allow/validate seconds.
+     * Validates time as 24hr (HH:MM[:SS]) or am/pm ([H]H[:MM][:SS][a|p]m)
      *
      * @param string|\DateTimeInterface $check a valid time string/object
      * @return bool Success
@@ -716,7 +715,7 @@ class Validation
             $check = static::_getDateString($check);
         }
 
-        return static::_check($check, '%^((0?[1-9]|1[012])(:[0-5]\d){0,2} ?([AP]M|[ap]m))$|^([01]\d|2[0-3])(:[0-5]\d){0,2}$%');
+        return static::_check($check, '%^((0?[1-9]|1[012])(:[0-5]\d){0,2} ?([AP]M|[ap]m))$|^([01]\d|2[0-3])(:[0-5]\d){1,2}$%');
     }
 
     /**

+ 6 - 0
tests/TestCase/Validation/ValidationTest.php

@@ -1646,6 +1646,12 @@ class ValidationTest extends TestCase
         $this->assertTrue(Validation::time('1:00pm'));
         $this->assertFalse(Validation::time('13:00pm'));
         $this->assertFalse(Validation::time('9:00'));
+        $this->assertFalse(Validation::time('1'));
+        $this->assertFalse(Validation::time('12'));
+        $this->assertFalse(Validation::time('12:0'));
+        $this->assertFalse(Validation::time('12:000'));
+        $this->assertFalse(Validation::time('24'));
+        $this->assertTrue(Validation::time('12:00:00'));
     }
 
     /**