2010年11月30日火曜日

月、日の桁数をそろえたい時に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文字を出力する形です。


別にそれほどエレガントでないかもしれませんが


同じ文字数にそろえたいレイアウトの整形という意味では


非常に的を得た方法ではないかなと思います。





0 件のコメント: