php」タグアーカイブ

【php】2つの日付が何ヶ月離れているかを求める

phpで、2つの日付が何ヶ月離れているかを求めるときのメモ。

だけど、このブログ用に作ったので、結構アイマイです。。。
うるう年は考慮されてないし、月で比較してるので日にちまで見てないっす。。。
使用するときは、そこらへん要注意!
あとあと、生後○ヶ月と出したいので、実際の月の差よりマイナス1ヶ月してます。

$bornDate   = '2012-05-30'; // canna産まれた日
$todayDate  = get_the_time('Y-m-d'); // 記事の公開日(wordpress)

// 秒数に変換
$bornTime   = strtotime($bornDate);
$todayTime  = strtotime($todayDate);
$diffDate   = abs(($todayTime - $bornTime) / (60 * 60 * 24));

// 月数に変換
$bornMonth  = date("Y",$bornTime)*12 + date("m",$bornTime);
$todayMonth = date("Y",$todayTime)*12 + date("m",$todayTime);

// 産まれた翌月は生後0ヶ月だからマイナス1
$diffTemp   = $todayMonth - $bornMonth -1;  
$diffTemp   = ($diffTemp < 0)? 0:$diffTemp;

$diffYear   = floor($diffTemp/12);  // 何年離れているか?
$diffMonth  = $diffTemp%12;         // 何ヶ月離れているか?
$diffYear   = ($diffYear == 0)? '':"{$diffYear}年";
$diff       = "{$diffYear}{$diffMonth}ヶ月";

return "<p>☆canna生後{$diffDate}日目 ({$diff})☆</p>";

ではでは

★11月7日の記事だよ★

【PHP】ゼロ埋め処理

PHPでゼロ埋めするときのメモ。

■方法1
sprintfを使用
$aa = sprintf(‘%02d’, 1);
$aaに’01’がセットされるよ

※応用編
$year = 2012; $month = 9; $day = 1;
$aa = sprintf(“%04d-%02d-%02d”,$year,$month,$day);
$aaに’2012-09-01’がセットされるよ

■方法2
str_pad
$aa = str_pad(1, 2, ‘0’, STR_PAD_LEFT);
$aaに’01’がセットされるよ

ご参考までに
JavaScriptのゼロ埋め処理

ではでは

★11月7日の記事だよ★

【PHP】2つの日付の日数差を求める

phpで2つの日付が何日離れているかを計算するときのメモ
覚えられないから、そのたびググってしまうんだよねw

// まずは日付をセットして
$date1 = '2012-05-30';
$date2 = '2012-11-08';

// それぞれの日付をUNIXタイムスタンプに変換して
$timeStamp1 = strtotime($date1);
$timeStamp2 = strtotime($date2);

// 差を求めて、それを日にちに換算して完了!!
$diff = abs($timeStamp2 - $timeStamp1) / (60 * 60 * 24);

ではでは

★10月8日の記事だよ★