月、日の桁数をそろえたい時にsubstrの便利な使い方
月とかカレンダーの日をfor文でまとめて出力するときに
以下のように書くことがあるかと思います。
for($i=1;$i<=12;$i++){ echo $i.'月<br>'; } ================= 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
ただ、これだとレイアウト的に1桁の月と2桁の月でサイズがずれたりすることがあります。
そこで、1桁の月に頭に0をつけて 01月 02月 ... という風に表示したいとします。
IF文で書くと以下のような感じ。ちょっとIF文が仰々しくてあまりうれしくありません。
for($i=1;$i<=12;$i++){ if($i < 10){ echo '0'.$i.'月<br>'; }else{ echo $i.'月<br>'; } }
これを、substrで書くとこんな感じ
for($i=1;$i<=12;$i++){ echo substr('0'.$i, -2) . '月<br>'; } ================= 01月 02月 03月 04月 05月 06月 07月 08月 09月 10月 11月 12月
全部の月の頭に0をつけて文字列として右から2文字を出力する形です。
別にそれほどエレガントでないかもしれませんが
同じ文字数にそろえたいレイアウトの整形という意味では
非常に的を得た方法ではないかなと思います。