Validate time format using preg_match

后端 未结 3 1807
离开以前
离开以前 2020-12-11 12:38

I want to validate a time input (like 10:30 am, 02:30 pm) using preg_match()

I use this,

 $pattern   =   \"/([1-12]):([0-5])([0-9])( )(a         


        
3条回答
  •  暖寄归人
    2020-12-11 13:02

    DATETIME SOLUTION

    You can validate all your date/time strings with DateTime::createFromFormat:

    Function

    function isTimeValid($time) {
        return is_object(DateTime::createFromFormat('h:i a', $time));
    }
    

    Example

    foreach (['12:30 am', '13:30 am', '00:00 pm', '00:00 am', '12:30am', '15:50pm'] as $time) {
        echo "Time '$time' is " . (isTimeValid($time) ? "" : "not ") . "valid.\n";
    }
    

    Example output

    Time '12:30 am' is valid.
    Time '13:30 am' is not valid.
    Time '00:00 pm' is valid.
    Time '00:00 am' is valid.
    Time '12:30am' is valid.
    Time '15:50pm' is not valid.
    

提交回复
热议问题