PHP在特定字符后拆分字符串,但字符串长度不同

时间:2012-10-28 23:08:36

标签: php arrays string split substr

我使用了一个单选按钮,它给了我两个连接的变量,我需要稍后将它们分开。它给我一个时间和日期格式为晚上11:30,其中3是日期,晚上11:30是时间。我可以用我的功能将它拆分,但如果时间是一位数,例如下午7:30,则会抛出一些东西。我可以使用军事时间,但这不是我想要的。有一种方法可以改变这个,所以它在字符“m”之后将字符串分开,所以它将适用于上午/下午,无论时间长度是早上7点。或者早上07点。提前谢谢。

$string = $Radio;   //This is the value I get 
$MeetTime = substr("$string", 0, 7); //Gives me 11:30am
$MeetDay  = substr("$string", 7, 2); //Gives me 2 

3 个答案:

答案 0 :(得分:1)

找出m的位置并在那个

上做你的逻辑

如果m是6那么它是一个全长

$loc = stripos($string,"m");

如果它在5那么它很短,所以调整你的分裂

答案 1 :(得分:1)

if(preg_match('~^([\\d]{1,2}:[\\d]{1,2}[ap]m)([\\d]+)$~i', trim($string), $Matches)){
    var_dump($Matches); // See what this prints
}

希望它有所帮助。

答案 2 :(得分:1)

试试这个:

$date = '11:30am3';
$date = explode('pm', $date);
if(count($date) <= 2){
$date = explode('am', $date[0]);
}
print_r($date);

其中$ date [1]是时间,$ day [0]是日期。 但你应该使用其他格式,我建议使用时间戳。