tetsunosukeのnotebook

tetsunosukeのメモです

dateを第二引数なしに二回呼んじゃらめええ

ギークなお姉さんは好きですか 9日目 カレンダを作ルンダ♪に、またよくある本にありがちな過ちを発見。これほんとそこらじゅうでよく見かけるんだよねえ・・・。

2  $today_year =date("Y");
3  $today_month =date("n");

これはダメだって。

date関数は第二引数がない場合「現在時刻」を表す文字列をフォーマットに合わせて返すのだが、ポイントは「dateが呼ばれた現在の」時間を返すということ。

たとえば2007年12月31日の23:59:59 に2行目のdateが実行され、そのあとに3行目のdateが実行されたときには既に2008年1月1日になっていたかというまるで僕の年末の仕事のようなことが発生したら、めちゃくちゃになってしまう。

だから、dateを(特に二回以上)使うときは、時刻を一旦変数にしまっとくのがセオリー!

5 $first_day=date("w",$current);
6 $last_day=date("t",$current); 

ちょうどこんな風にね!