我有一个像这样的字符串:
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。
答案 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"));