如何获取包含特殊字符串的数据

时间:2018-11-26 04:27:54

标签: php string

我有一个像这样的字符串:

Time In: 8:15 AM Time Out: 12:30 PM Comments: Time In: 1:00 PM Time Out: 4:45 PM Comments:

我的目标是从上面的字符串中获取时间,包括AM / PM。
我以这种方式尝试过:

$commentData ='Time In: 8:15 AM Time Out: 12:30 PM Comments: Time In: 1:00 PM Time Out: 4:45 PM Comments:'

preg_match_all("/In: ([^\s]+)/", $commentData, $inMatches);
preg_match_all("/Out: ([^\s]+)/", $commentData, $outMatches); 
$inMatches[1][0];
echo $inMatches[1][1];
echo $$outMatches[1][0];
echo $outMatches[1][1];

我得到的值是:

8:15
1:00
12:30
4:45

但是我也想要AM和PM。

2 个答案:

答案 0 :(得分:1)

您可以使用(AM | PM)更新您的preg_match_all:

preg_match_all("/In: ([^\s]+) (AM|PM)/", $commentData, $inMatches);
preg_match_all("/Out: ([^\s]+) (AM|PM)/", $commentData, $outMatches); 

echo $inMatches[1][0]." ".$inMatches[2][0];
echo $inMatches[1][1]." ".$inMatches[2][1];
echo $outMatches[1][0]." ".$outMatches[2][0];
echo $outMatches[1][1]." ".$outMatches[2][1];

答案 1 :(得分:-1)

使用此:

echo date('h:i A', strtotime("8:15"));
 echo date('h:i A', strtotime("1:00"));
 echo date('h:i A', strtotime("12:30"));
 echo date('h:i A', strtotime("4:45"));