tohokuaikiのチラシの裏

技術的ネタとか。

1/1〜12/31を出力するには?


うえちょこ@ぼろぐ» [php]1/1?12/31を出力するには?
1/1〜12/31を出力する - 肉とビールとパンケーキ by @sotarok

んー、id:elfさんオススメのPHP関数strtotimeを使って
$ php -r 'while(++$i<366){echo date("n-j",$n)."\n"; $n=strtotime("+1 day",$n);}'

実行時間

// macmini 1.42GHz PPC G4
real 0m0.284s
user 0m0.050s
sys 0m0.010s


あれ?単純に1-1〜12-31の文字列出すだけなら、strtotime使うことも無くて
$ php -r 'while(++$i<366){echo date("n-j",$n)."\n"; $n+=86400;}'
で終わりか。

real 0m0.262s
user 0m0.010s
sys 0m0.010s


あー、閏年(たとえば今年とか)を気にするなら、
$ php -r 'while(++$i<366+date("L",2008)){echo date("n-j",$n)."\n"; $n+=86400;}'
かな。


real 0m0.281s
user 0m0.030s
sys 0m0.000s


元記事の人、なんでこんな面倒なことなってるんだろう・・・・・?
なんか別の意図があるのかな・・・。