正则表达式。 12小时时间格式PHP只允许 - 'g:我A'

时间:2013-11-25 17:52:08

标签: php regex

我正在学习正则表达式 - 并提出了以下PHP正则表达式,我相信它有效:

/^([1-9]|1[012]):([0-5][0-9]) ((A|P)M)$/

我希望仅在验证时允许以下字符串:

1-12:00-59 AM/PM

为了更好地描述需求,我需要一个以下PHP日期格式的正则表达式

g:i A

我可以使用一个很好的工具来测试这个正则表达式吗?有没有人能让我使用更好的正则表达式?

1 个答案:

答案 0 :(得分:3)

正则表达式不适合解析日期。改为使用PHP的DateTime类(Glavić来自php.net的函数):

function validateDate($date, $format = 'g:i A')
{
    $d = DateTime::createFromFormat($format, $date);
    return $d && $d->format($format) == $date;
}