繁体   English   中英

在PHP中计算生日的年龄

[英]Calculate age from birthdate in PHP

我的一个朋友给了我这个代码,但是我似乎无法使它正常工作。 它一直告诉我我有一个未定义的变量,但是我尝试用几种不同的方式定义它,但是它没有显示出正确的年龄,它显示的所有人都是43岁。这是我正在使用的代码:

$bdate= getdate('$_GET["bd"]');

if($bdate == 0){ $nodate = 1; }
$bdate = strtotime( $bdate );
$birthday = date("n/j/Y",$bdate);  //must be as m/d/yyyy

$bday = explode("/", $birthday); //parse
$b_mm = $bday[0]; //birthday month
$b_dd = $bday[1]; //birthday day
$b_yyyy = $bday[2]; //birthday year

//compare timestamps of mm/dd for birthday and today
$bday_mm_dd = mktime(0,0,0,$b_mm,$b_dd,0);
$today_mm_dd = mktime(0,0,0,date("m"),date("d"),0);
$age = date("Y", time()) - $b_yyyy;

if ($bday_mm_dd > $today_mm_dd) {
//birthday hasnt happened yet this year
$age = $age - 1;
}

为了澄清我的sql语句,我将生日列为bd。

如果有人可以提供帮助,我将不胜感激。

getdate()返回一个关联数组,而不是日期的文本表示形式。 strtotime()无法理解这一点,因此您对date()的首次调用会将其时间戳参数解释为零,即UNIX时代。

猜猜这个时代是多少年前的? :)

跳过strtotime(),仅将$bdate[0]传递给date()。 这将包含'bd'的时代时间戳记表示形式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM