php检查字符串是否采用h:IA-h:IA格式

php检查字符串是否采用h:IA-h:IA格式,php,regex,Php,Regex,我需要检查字符串,该字符串是否为 date("h:i A") - date("h:i A") (例如:上午6时至下午3时) 如何检查字符串的格式是否正确 我需要一个函数逻辑,比如如果它的格式不正确,则返回false,否则返回true有点不清楚你在问什么,但我假设它是这样的: $myString = '6:00 AM - 3:00 PM' preg_match('/[0-2]?[0-9]:[0-6][0-9]\s(?:AM|PM)\s-\s[0-2]?[0-9]:[0-6][0-9]\s(?:A

我需要检查字符串,该字符串是否为

date("h:i A") - date("h:i A")
(例如:上午6时至下午3时)

如何检查字符串的格式是否正确


我需要一个函数逻辑,比如如果它的格式不正确,则返回false,否则返回true

有点不清楚你在问什么,但我假设它是这样的:

$myString = '6:00 AM - 3:00 PM'
preg_match('/[0-2]?[0-9]:[0-6][0-9]\s(?:AM|PM)\s-\s[0-2]?[0-9]:[0-6][0-9]\s(?:AM|PM)/', $myString, $matches)
print $matches
?> 6:00 AM - 3:00 PM 

不清楚,但你需要这样的东西

\d+:\d+\s[AP]M-\s\d+:\d+\s[AP]M

您可以通过以下方式进行检查:

$str = '6:00 AM - 3:00 PM';

$parts = explode('-', $str, 2);

$format = '%l:%M %p';

var_dump( strptime($parts[0], $format) && strptime($parts[1], $format) );

我为我的字符串找到了如下解决方案

echo preg_match('/^(?:0[1-9]|1[0-2]|[1-9]):[0-5][0-9] (am|pm|AM|PM)( |)-( |)(?:0[1-9]|1[0-2]|[1-9]):[0-5][0-9] (am|pm|AM|PM)$/', "12:00 AM - 12:00 AM");

您可以在

中找到解决方案,使用正则表达式检查此问题。你已经走了一半;)<代码>预匹配('/^([1-9]| 1[012]):[0-5]\d[AP]M$/',$myString)。此情况在12:00 AM-12:00 AM时失败