strtotimeによる日付変更の問題

こんばんはははらぶちゃん。



strtotime関数を使用して日付を計算する際の小さな問題について説明します。



一番下の行は次のとおりです。 前月の名前を取得する必要がありました。 このタスクには複雑なことは何もありません。

$t = strtotime('-1 month'); echo strftime('%B', $t);
      
      





ほとんどの場合、このオプションは素晴らしいです。 しかし、今日ではありません。 しかし、金曜日ですらまだ=)。 なぜなら 今日は5月31日、上記のコードは5月1日を返します。 そして、一般的に7月1日に+1か月が戻ってきました。 変です。 このような瞬間に、PHPプログラマーは2人に1人が次の自転車を発明し始めます。

 $months = array(1=>'','',''...); echo $months[date('m')-1];
      
      







しかし、もっと簡単にすることができます:

 $t = strtotime('first day of previous month'); echo strftime('%B', $t);
      
      





このコードは4月1日に返されます。 strtotimeの 最初の引数の形式について詳しく読んでください。



美しいコードと幸運。



All Articles