PHP使用出生时间计算年龄(Y-m-d\TH:i:sO)

PHP使用出生时间计算年龄(Y-m-d\TH:i:sO),php,date,datetime,strtotime,Php,Date,Datetime,Strtotime,我试图用php计算一个年龄,但只想增加年龄,如果生日也达到了,而不仅仅是生日。以下是我到目前为止得到的信息: $today = date("Y-m-d\TH:i:sO"); $bday = "1987-01-01T15:30:00+0200"; $diff = abs(strtotime($bday) - strtotime($today)); $age = floor($diff / (365*60*60*24)); 如果到达当天,它就可以工作,但对时间不敏感。谢谢你的帮助 #面向对象 #

我试图用php计算一个年龄,但只想增加年龄,如果生日也达到了,而不仅仅是生日。以下是我到目前为止得到的信息:

$today = date("Y-m-d\TH:i:sO");
$bday = "1987-01-01T15:30:00+0200";
$diff = abs(strtotime($bday) - strtotime($today));
$age = floor($diff / (365*60*60*24));
如果到达当天,它就可以工作,但对时间不敏感。谢谢你的帮助

#面向对象
 # object oriented
    $from = new DateTime('1987-01-01 T15:30:00+0200');
    $to   = new DateTime('today');
    echo 'Years '.$from->diff($to)->y; echo '<br/>';
    echo 'Month '.$from->diff($to)->m; echo '<br/>';
    echo 'Days '.$from->diff($to)->d; echo '<br/>';
    echo 'Hours '.$from->diff($to)->h; echo '<br/>';

    # procedural
    echo date_diff(date_create('1987-01-01 T15:30:00+0200'), date_create('today'))->y;


<?php

//Convert to date
$datestr="2015-06-11 19:10:18";//Your date
$date=strtotime($datestr);//Converted to a PHP date (a second count)

//Calculate difference
$diff=$date-time();//time returns current time in seconds
$days=floor($diff/(60*60*24));//seconds/minute*minutes/hour*hours/day)
$hours=round(($diff-$days*60*60*24)/(60*60));

//Report
echo "$days days $hours hours remain<br />";
?>
$from=新日期时间('1987-01-01 T15:30:00+0200'); $to=新日期时间(“今天”); 回音“年”。$from->diff($to)->y;回声“
”; 回声“月”。$from->diff($to)->m;回声“
”; 回显“天”。$from->diff($to)->d;回声“
”; 回声“小时数”。$from->diff($to)->h;回声“
”; #程序性 回显日期(创建日期('1987-01-01 T15:30:00+0200')、创建日期('today')->y;
呃,为什么要将时间值转换为字符串,然后再将字符串转换回时间值<代码>$diff=abs(time()-strotime($bday))
。而且它对时间不敏感,因为你只有白天的数学。还有,看看。使用DateTime类可能更安全。谢谢,但它似乎对时间不敏感。例如,如果我将$from设置为实际日期,并稍微调整一下时间,则不会发生任何变化。您希望再次计算时间TOOTHEANKS以获得帮助!但我的意思略有不同:例如,今天是我的生日,而且是凌晨。想象一下我是在晚上出生的。我只想在夜晚来临时,而不仅仅是生日本身时,一年才会改变。