根据出生日期计算年龄
我在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']}";
}
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;
的MySQL> = 5.0.0
SELECT TIMESTAMPDIFF(YEAR, '1970-02-01', CURDATE()) AS age
致命错误:调用未定义的函数date_diff() – PHPupil
@PHPupil:'date_diff'用于PHP版本> = 5.3.0。 –
@PHPupil:升级PHP? ;)或使用MySQL解决方案。 –
的生日日期格式日/月/年
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)。
声明@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;
得到了净这个脚本(感谢coffeecupweb)
<?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
这是怎么得到11票?一个人的年龄也取决于一年中的一天和一月。 –
参考链接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的DateTime类可以给你几年的年龄。假设$dob
为yyyy-mm-dd
格式,此示例忽略一天中的时间。
date_diff(date_create($dob), date_create(date('Y-m-d'))->y
在下面的代码,date()
,date_create()
和date_diff()
函数用来计算用户到今天的时代。
$dateOfBirth = "17-10-1985";
$today = date("Y-m-d");
$diff = date_diff(date_create($dateOfBirth), date_create($today));
echo 'Age is '.$diff->format('%y');
有使用PHP
$birth_date = '15.03.2014';
$date = substr($birth_date, 0, 2);
echo $date;
的SUBSTR这将只是简单的给你出生日期的输出日期找到任何的出生日期的简单方法。
在这种情况下,那将是。
见substr of PHP更多...
可能重复[在MySQL计算时代(InnoDB的)](http://stackoverflow.com/questions/5773405/calculate -age-mysql-innodb) –
想必您的日期是使用日期数据类型存储的吗? – Strawberry
有很多'计算年龄'的答案。 Google是一个强大的工具!但顺便说一下:不要使用mysql_ *函数。使用PDO或MySQLi –