我有時間存儲在我的數據庫中。下面是一個時間的一個例子:在從右向左兩個字符空格後添加字符
800
或1000
第一個是8:00,而第二個是10:00。我想在第二個字符從右到左開始計數後加上一個分號:
。我怎麼能在PHP中做到這一點?
這裏是我的嘗試:
$realTime = substr_replace($oldtime,":", 2, -strlen($oldtime));
,但它從左邊開始,但我需要它從右邊開始計數。謝謝。
我有時間存儲在我的數據庫中。下面是一個時間的一個例子:在從右向左兩個字符空格後添加字符
800
或1000
第一個是8:00,而第二個是10:00。我想在第二個字符從右到左開始計數後加上一個分號:
。我怎麼能在PHP中做到這一點?
這裏是我的嘗試:
$realTime = substr_replace($oldtime,":", 2, -strlen($oldtime));
,但它從左邊開始,但我需要它從右邊開始計數。謝謝。
每docs:
如果開始爲負,則更換將開始在開始「日從字符串的結束字符。
所以使用負數:
$realTime = substr_replace($oldtime,":", -2, -strlen($oldtime));
用正則表達式
$newtime = preg_replace('#^(.*)([0-9]{2})$#','$1:$2',$oldtime);
另一種方法做到這一點是有根據長度不同的配方和使用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