**年齢を自動計算するプラグイン [#ke7595be]
|RIGHT:70|LEFT:410|c
|~バージョン|1.5|
|~投稿者|[[asa]]|
|~状態|完了|
|~投稿日|&new{2014-10-10 (金) 16:30:02};|
***メッセージ [#ba8c54d9]
メンバー表を作っています。
ページを開いた時の年齢を自動計算し表示してほしい。
 
***コメント [#o70e1055]
- 途中でおくってしまいました。|名前|生年月日|年齢| となっており、前のカラムのデータで自動計算してほしい -- [[asa]] &new{2014-10-10 (金) 16:32:03};
-希望とはちょっと違うけど
 <?php
 // PukiWiki - Yet another WikiWikiWeb clone.
 // $Id: age.inc.php,v 0.00
 //
 // USAGE : &age(birthday_string);
 // 
 
 function plugin_age_inline()
 {
   global $vars;
 
   $args = func_get_args();
   if (func_num_args() > 2) return '&age(date);';
   $date_str = $args[0];
   if ($date_str == '') return '&age(date);';
   $date = strtotime($date_str);
   if ($date === -1) return '&age(date): Invalid date string;';
   $date -= ZONETIME;
 
   $today=time();
   $past=($today-$date);
   $age=intval($past/(60*60*24*365.25));
 
   return($age);
 }
 ?>
--
 &age(誕生日文字列);
で満年齢を返します。
--誕生日文字列は[[PHP関数:strtotime]]が理解できるもの。 例:1995-3-15 のような YYYY-MM-DD
--簡易的に365.25日を1年としていること。
--strtotimeの仕様上の問題で1970年1月1日以前を受け付けない場合があります。(詳細はPHPのマニュアル参照)
-
この方が利用できる場合が多いでしょう と思います。newプラグインの設定で対処できそうな気もしますが --  &new{2014-10-11 (土) 03:46:03};
- そのパターンなら、昔の残骸が残ってる。[[自作プラグイン/age.inc.php]]、[[自作プラグイン/kazoe.inc.php]] --  &new{2014-10-11 (土) 18:07:53};

-だったら $datetime_rules か $str_rules に
 '^\|(.*)\|(.*)\|age\|$' => "|$1|$2|&age($2);|",
を加えてやれば
 |名前|生年月日|age|
と書けば実現できるね -- &new{2014-10-11 (土) 19:32:01};
- みなさまありがとうございました。実現できました。 -- [[asa]] &new{2014-10-14 (火) 09:10:55};
- 実現できたとのことなので 状態を「完了」にしておきますね --  &new{2014-10-14 (火) 11:27:05};

#comment
//#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.027 sec.

OSDN