2016-11-11 68 views
1

我有時間存儲在我的數據庫中。下面是一個時間的一個例子:在從右向左兩個字符空格後添加字符

8001000

第一個是8:00,而第二個是10:00。我想在第二個字符從右到左開始計數後加上一個分號:。我怎麼能在PHP中做到這一點?

這裏是我的嘗試:

$realTime = substr_replace($oldtime,":", 2, -strlen($oldtime)); 

,但它從左邊開始,但我需要它從右邊開始計數。謝謝。

回答

3

docs

如果開始爲負,則更換將開始在開始「日從字符串的結束字符。

所以使用負數:

$realTime = substr_replace($oldtime,":", -2, -strlen($oldtime)); 
0

用正則表達式

$newtime = preg_replace('#^(.*)([0-9]{2})$#','$1:$2',$oldtime); 
0

另一種方法做到這一點是有根據長度不同的配方和使用case語句。

Update foo 
    set oldtime= case when length(oldtime) = 4 then 
        concat(substr(oldtime,1,2),':',substr(oldtime,3,2)) 
        when length(oldtime) = 3 then 
        concat(substr(oldtime,1,1),':',substr(oldtime,2,2)) 
       end 

Working Fiddle

相關問題