如何在PHP中计算一个人的年龄(年、月、日)?
可能重复:如何在PHP中计算一个人的年龄(年、月、日)?,php,Php,可能重复: 我想计算一个人的年龄,给出出生日期和当前日期,以年、月和天为单位,相对于当前日期 例如: >>> calculate_age(2008, 01, 01) 1 years, 0 months, 16 days 您可以使用PHPdate\u diff或实现您想要的功能,您可以使用PHP日期格式以任何格式输出它 $interval = date_diff(date_create(), date_create('2008-01-01 10:30:00')); echo
我想计算一个人的年龄,给出出生日期和当前日期,以年、月和天为单位,相对于当前日期 例如:
>>> calculate_age(2008, 01, 01)
1 years, 0 months, 16 days
您可以使用PHPdate\u diff
或实现您想要的功能,您可以使用PHP
日期格式以任何格式输出它
$interval = date_diff(date_create(), date_create('2008-01-01 10:30:00'));
echo $interval->format("You are %Y Year, %M Months, %d Days, %H Hours, %i Minutes, %s Seconds Old");
回音
使用数据时间差函数
看看这篇堆栈溢出帖子:在右边的相关部分有几个问题问的都是同样的问题,我敢肯定,当你输入问题时,你已经收到了一些建议。谢谢你的努力,但我需要几年、几个月、几天的时间。如果你看资料来源的话,这不是我的努力我说我需要它以年、月、日为单位。这里是date_diff()的函数定义?我得到了一个错误致命错误:调用未定义的函数date_diff()see&最终找到了我想要的+1!谢谢,但我还需要几天:)
$interval = date_diff(date_create(), date_create('2008-01-01 10:30:00'));
echo $interval->format("You are %Y Year, %M Months, %d Days, %H Hours, %i Minutes, %s Seconds Old");
You are 04 Year, 04 Months, 1 Days, 00 Hours, 56 Minutes, 36 Seconds Old
<?php
date_default_timezone_set('Asia/Calcutta');
function findage($dob)
{
$localtime = getdate();
$today = $localtime['mday']."-".$localtime['mon']."-".$localtime['year'];
$dob_a = explode("-", $dob);
$today_a = explode("-", $today);
$dob_d = $dob_a[0];$dob_m = $dob_a[1];$dob_y = $dob_a[2];
$today_d = $today_a[0];$today_m = $today_a[1];$today_y = $today_a[2];
$years = $today_y - $dob_y;
$months = $today_m - $dob_m;
if ($today_m.$today_d < $dob_m.$dob_d)
{
$years--;
$months = 12 + $today_m - $dob_m;
}
if ($today_d < $dob_d)
{
$months--;
}
$firstMonths=array(1,3,5,7,8,10,12);
$secondMonths=array(4,6,9,11);
$thirdMonths=array(2);
if($today_m - $dob_m == 1)
{
if(in_array($dob_m, $firstMonths))
{
array_push($firstMonths, 0);
}
elseif(in_array($dob_m, $secondMonths))
{
array_push($secondMonths, 0);
}elseif(in_array($dob_m, $thirdMonths))
{
array_push($thirdMonths, 0);
}
}
echo "<br><br> Age is $years years $months months.";
}
findage("21-04-1969"); //put date in the dd-mm-yyyy format
?>