2016-11-11 2 views
1

私のデータベースには時間があります。ここでの時間の一例である:右から左に2文字分後に文字を追加する

800又は1000

最初の8:00であり、2番目の10:00です。 2番目の文字の後にセミコロン:を追加して、右から左に数え始めます。どのように私はPHPでこれを行うことができますか?ここ

は、私が試したものです:

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

が、それは左から始めたが、私はそれが右からカウントを開始する必要があります。ありがとう。 docsパー

答えて

3

:が負の

開始場合は、文字列の末尾から文字目開始」から始まります置き換えます。

ので、負の数を使用します。

$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

関連する問題