Php 如何通过出生日期获得年龄
我想通过php在varPhp 如何通过出生日期获得年龄,php,Php,我想通过php在var$birth\u date中获得以下日期的确切年龄,它是怎样的 $birth\u date=2011/12/16 $birth_date=>例如,这是我的出生日期 例如,我的出生日期输出为:0年、0月、1天 <?php //calculate years of age (input string: YYYY-MM-DD) function birthday ($birthday, $separator){ list($year,$month,$day
$birth\u date
中获得以下日期的确切年龄,它是怎样的
$birth\u date=2011/12/16代码>
$birth_date=>例如,这是我的出生日期
例如,我的出生日期输出为:0年、0月、1天
<?php
//calculate years of age (input string: YYYY-MM-DD)
function birthday ($birthday, $separator){
list($year,$month,$day) = explode($separator, $birthday);
$year_diff = date("Y") - $year;
$month_diff = date("m") - $month;
$day_diff = date("d") - $day;
if ($day_diff < 0 || $month_diff < 0)
$year_diff--;
return $year_diff;
}
echo getAge('2010/12/16', '/');
?>
从重新格式化
我还建议使用unix时间戳来处理生日是个坏主意,因为它们的范围非常有限(1970-2038)。改用php的内置DateTime
类:
$then = DateTime::createFromFormat("Y/m/d", "2011/12/16");
$diff = $then->diff(new DateTime());
echo $diff->format("%y year %m month %d day\n");
请再读一遍我的帖子。我想从这个日期开始计算年龄:2011/12/16
如果你用“/”替换“-”,它应该会起作用。@KateWintz,说真的,你甚至不能花2秒钟的时间看一下代码,看看你是否需要更改explode(“-”,$birthday)代码>到分解(“/”,美元生日)代码>使其适用于您的格式?请至少试着从提供的答案中学习,而不要认为StackOverflow是你自己的个人编码机器。看这里,不要工作:你意识到你必须调用一个函数才能工作吗?请使用搜索功能。这已经被问过多次了。