カスタムフィールドから誕生日を入力して経過時間などの関数の設定
カスタムフィールドプラグイン(CustomFieldGuiUtility)を使って各ユーザーが誕生日を入力してもらいそのデーターから時間に関するphp計算式の覚え書きです。 ますは、入力データを関数に変換します。
//誕生日の西暦・月・日 <?php $by = post_custom('birthday_y'); $bm = post_custom('birthday_m'); $bd = post_custom('birthday_d'); //現在の西暦・月・日・ $ty = date("Y"); $tm = date("m"); $td = date("d"); ?>
年齢を算出する関数
<!--?php function calc_age($birth) { list($by, $bm, $bd) = explode('-', $birth); $age = $ty - $by; if($tm * 100 + $td < $bm * 100 + $bd) $age--; return $age; } print calc_age("$by-$bm-$bd"); ?-->
お誕生日までの日数
<!--?php $tuki = $bm ; $niti = $bd;<br ?--><br />$one_day = 60 * 60 * 24; $this_y = date(Y);<br /><br />$t1 = time(); $t2 = mktime(0, 0, 0, $tuki, $niti, $this_y);<br /><br />if ($t1 < $t2) {<br /><br />$remain_day = ceil (($t2 - $t1) / $one_day); echo ($remain_day);<br /><br />} else {<br /><br />$next_y = ++$this_y ; $t3 = mktime(0, 0, 0, $tuki, $niti, $next_y); $remain_day = ceil (($t3 - $t1) / $one_day);<br /><br />$tukihi1 = date ('Ymd', $t1) ; $tukihi2 = date ('Ymd', $t2) ; $remain_day = ($tukihi1 != $tukihi2) ? $remain_day : 0;<br /><br />echo ($remain_day); } ?>
生まれてからの経過日数
<!--?php $t1 = mktime(0, 0, 0, $bm, $bd, $by); $t2 = time(); //現在のタイムスタンプ $one_day = 60 * 60 * 24; //1日の秒数 echo ($t2 - $t1) / $one_day; //2007年1月1日からの経過日数 // =--> 234.69549768519 ?>
小数点以下なし日にちのみ
<!--?php $today = mktime(0, 0, 0, gmdate("m"), gmdate("d"), gmdate("Y")); $start = mktime(0, 0, 0, $bm, $bd, $by); $keika = (int)(($today - $start) / 86400); echo ($keika); ?-->
いろんなサイトからの引用になります。 いろいろ試してみてこの以上の関数が一番上手く動きました。