月とかカレンダーの日を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 件のコメント:
コメントを投稿