2012-10-28 77 views
0

我使用了一個單選按鈕,它給了我兩個連接的變量,我需要稍後將它們分開。它給我一個時間和日期,格式爲11:30 pm3,其中3是日期,11:30是時間。我可以用我的功能將它分開,但如果時間是一位數字,例如下午7:30,它會拋出一些東西。我可以使用軍事時間,但這不是我想要的。有沒有辦法改變這個,所以它將字符串分割成字符「m」後面,這樣它就可以在上午/下午工作,而不管時間長度是上午7:00。或上午07:00。提前致謝。PHP在某個字符後分割了一個字符串,但字符串長度不一

$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 
+0

爲什麼不傳遞完整日期字符串? PHP可以爲你處理所有事情。 – shapeshifter

+0

這不是真正的時間。我已經設置了可用預約的時間等。 – user1781482

+0

它的實時與否都沒關係。它是一個日期+時間,所以爲什麼不通過它PHP會同意的東西。查看strtotime函數,有很多關於如何格式化字符串的選項。爲什麼不正確地格式化一次,然後其他所有東西都會播放,PHP,數據庫日期時間字段等。 – shapeshifter

回答

0

找出其中m是做對

你的邏輯,如果m爲6那麼它的全長一個

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

如果在5那麼它的短,所以調整你的分裂

+0

愛你的想法,並得到它的工作。謝謝!! $ loc = stripos($ string,「m」); 如果($ LOC == 5){\t \t \t \t \t \t \t \t $ MeetTime = SUBSTR( 「$字符串」,0,6); \t \t \t \t \t \t \t \t $ MeetDay = substr(「$ string」,6,2); } 否則{\t \t \t \t \t \t \t \t \t \t $ MeetTime = SUBSTR( 「$字符串」,0,7); \t \t \t \t \t \t \t \t $ MeetDay = substr(「$ string」,7,2); } – user1781482

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

希望它有幫助。

1

試試這個:

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

其中[1] $日期爲時間和$天[0]日期。 但是你應該使用其他格式,我建議使用時間戳。