strtotimeの落とし穴

31日ある月と30日しか無い月とか、2月とかの計算が思い通りにうまくいかない時の対処法。

ダメパターン

<?php
$timestamp = strtotime('2006-03-31 -1 month');
echo date('Y-m-t', $timestamp);
?>

結果:2006-03-31

OKパターン

<?php
$timestamp = strtotime('2006-03-31');
$now = date('Y-m-01',$timestamp);

$timestamp = strtotime($now.' -1 month');
echo date('Y-m-t', $timestamp);
?>

結果:2006-02-28

まぁ、「1ヶ月前」の解釈の仕方にもよりますが・・・。
スポンサーサイト

トラックバック

コメント

コメントを残す

Secret


プロフィール

U2K

Author:U2K
いろいろプログラムに関しての覚え書きをちょくちょくと書いていきます。

オススメ










オススメ

忍者AdMax

u2k on Twitter

最近の記事