wordpressの技術情報をメモしたサイトです。

カスタムフィールドから誕生日を入力して経過時間などの関数の設定

カスタムフィールドプラグイン(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);
?-->

 

いろんなサイトからの引用になります。 いろいろ試してみてこの以上の関数が一番上手く動きました。