생년월일을 기준으로 연령 계산
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;
함수 : date_create()
,date_diff()
MySQL > = 5.0.0
SELECT TIMESTAMPDIFF(YEAR, '1970-02-01', CURDATE()) AS age
함수 : TIMESTAMPDIFF()
,CURDATE()
Age를 얻기위한 아주 작은 코드 :
<?php
$dob='1981-10-07';
$diff = (date('Y') - date('Y',strtotime($dob)));
echo $diff;
?>
//output 35
net에서이 스크립트를 받았습니다 (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);
?>
참조 링크 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/>";
날짜 / 월 / 년 형식의 생일 날짜
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 세).
$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;
$getyear = explode("-", $value['users_dob']);
$dob = date('Y') - $getyear[0];
$value['users_dob']
형식이있는 데이터베이스 값입니다. yyyy-mm-dd
알리다 @dateOfBirth date
select @dateOfBirth = '2000-01-01'
SELECT datediff(YEAR,@dateOfBirth,getdate()) as 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'];
To Calculate age from Date of birth used used query like this.
'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'];
}
Note: don't use reserved keywords column name.
There is a simple way to find the date from any birthdate by using substr of PHP
$birth_date = '15.03.2014';
$date = substr($birth_date, 0, 2);
echo $date;
Which will just simply give you the output date of that birth date.
In this case, that will be 15.
See substr of PHP for more...
참고URL : https://stackoverflow.com/questions/19521146/calculate-age-based-on-date-of-birth
'Development Tip' 카테고리의 다른 글
EF4-선택한 저장 프로 시저가 열을 반환하지 않음 (0) | 2020.12.02 |
---|---|
자바에서 for 루프에서 벗어나기 (0) | 2020.12.02 |
Swift의 UITableView (0) | 2020.12.02 |
iPhone X / 8 / 8 Plus CSS 미디어 쿼리 (0) | 2020.12.02 |
SQL Server의 VARCHAR에서 숫자가 아닌 문자를 제거하는 가장 빠른 방법 (0) | 2020.12.02 |