根据出生日期计算年龄

我有一个 sql 中的用户表,每个用户都有出生日期。我想把他们的出生日期转换为他们的年龄(年) ,例如日期: 15.03.1999年龄: 14和 15.03.2014将改为年龄: 15

这里我想显示用户的日期:

if(isset($_GET['id']))
{
$id = intval($_GET['id']);
$dnn = mysql_fetch_array($dn);
$dn = mysql_query('select username, email, skype, avatar, ' .
'date, signup_date, gender from users where id="'.$id.'"');
$dnn = mysql_fetch_array($dn);
echo "{$dnn['date']}";
}
196726 次浏览

用于格式为 日期/月份/年份的生日日期

function age($birthday){
list($day, $month, $year) = explode("/", $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--;
if ($day_diff < 0 && $month_diff < 0) $year_diff--;
return $year_diff;
}

或接受日、月、年作为参数的同一函数:

function age($day, $month, $year){
$year_diff  = date("Y") - $year;
$month_diff = date("m") - $month;
$day_diff   = date("d") - $day;
if ($day_diff < 0 && $month_diff==0) $year_diff--;
if ($day_diff < 0 && $month_diff < 0) $year_diff--;
return $year_diff;
}

你可以这样使用它:

echo age("20/01/2000");

这将输出正确的年龄(在6月4日,它是14)。

PHP > = 5.3.0

# object oriented
$from = new DateTime('1970-02-01');
$to   = new DateTime('today');
echo $from->diff($to)->y;


# procedural
echo date_diff(date_create('1970-02-01'), date_create('today'))->y;

demo

功能: date_create()date_diff()


MySQL > = 5.0.0

SELECT TIMESTAMPDIFF(YEAR, '1970-02-01', CURDATE()) AS age

demo

功能: TIMESTAMPDIFF()CURDATE()

声明 @dateOfBirth date select @dateOfBirth = '2000-01-01'

SELECT datediff(YEAR,@dateOfBirth,getdate()) as Age

 $dob = $this->dateOfBirth; //Datetime
$currentDate = new \DateTime();
$dateDiff = $dob->diff($currentDate);
$years = $dateDiff->y;
$months = $dateDiff->m;
$days = $dateDiff->d;
$age = $years .' Year(s)';


if($years === 0) {
$age = $months .' Month(s)';
if($months === 0) {
$age = $days .' Day(s)';
}
}
return $age;

从 net 上得到这个脚本(感谢 Coffee ecupweb)

<?php
/**
* Simple PHP age Calculator
*
* Calculate and returns age based on the date provided by the user.
* @param   date of birth('Format:yyyy-mm-dd').
* @return  age based on date of birth
*/
function ageCalculator($dob){
if(!empty($dob)){
$birthdate = new DateTime($dob);
$today   = new DateTime('today');
$age = $birthdate->diff($today)->y;
return $age;
}else{
return 0;
}
}
$dob = '1992-03-18';
echo ageCalculator($dob);
?>

非常小的代码获取年龄:

<?php
$dob='1981-10-07';
$diff = (date('Y') - date('Y',strtotime($dob)));
echo $diff;
?>


//output 35

参考链接 http://www.calculator.net/age-calculator.html

$hours_in_day   = 24;
$minutes_in_hour= 60;
$seconds_in_mins= 60;


$birth_date     = new DateTime("1988-07-31T00:00:00");
$current_date   = new DateTime();


$diff           = $birth_date->diff($current_date);


echo $years     = $diff->y . " years " . $diff->m . " months " . $diff->d . " day(s)"; echo "<br/>";
echo $months    = ($diff->y * 12) + $diff->m . " months " . $diff->d . " day(s)"; echo "<br/>";
echo $weeks     = floor($diff->days/7) . " weeks " . $diff->d%7 . " day(s)"; echo "<br/>";
echo $days      = $diff->days . " days"; echo "<br/>";
echo $hours     = $diff->h + ($diff->days * $hours_in_day) . " hours"; echo "<br/>";
echo $mins      = $diff->h + ($diff->days * $hours_in_day * $minutes_in_hour) . " minutest"; echo "<br/>";
echo $seconds   = $diff->h + ($diff->days * $hours_in_day * $minutes_in_hour * $seconds_in_mins) . " seconds"; echo "<br/>";

有一种简单的方法可以通过使用 PHP 的 subr 从任何生日中查找日期

$birth_date = '15.03.2014';
$date = substr($birth_date, 0, 2);
echo $date;

它只会简单地给出出生日期的输出日期。

在这种情况下,它将是 < em > 15

请参阅 PHP 的 subr了解更多..。

从出生日期计算年龄使用如下查询。

'SELECT username, email, skype, avatar, TIMESTAMPDIFF(YEAR, date, CURDATE()) AS age, signup_date, gender FROM users WHERE id="'.$id.'"';




if(isset($_GET['id']))
{
$id = intval($_GET['id']);


$dn = mysql_query('select username, email, skype, avatar, TIMESTAMPDIFF(YEAR, date, CURDATE()) AS age, signup_date, gender from users where id="'.$id.'"');


$dnn = mysql_fetch_array($dn);


echo $dnn['age'];
}

注意: 不要使用保留关键字列名。

我希望你会觉得这很有用。

$query1="SELECT TIMESTAMPDIFF (YEAR, YOUR_DOB_COLUMN, CURDATE()) AS age FROM your_table WHERE id='$user_id'";
$res1=mysql_query($query1);
$row=mysql_fetch_array($res1);
echo $row['age'];
$getyear = explode("-", $value['users_dob']);
$dob = date('Y') - $getyear[0];

$value['users_dob']是格式为 yyyy-mm-dd的数据库值