
正文
PHP--年龄转生日、生日转年龄
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
/**
* 年龄转生日(模糊结果)
* @parameter int age(年龄)
* @parameter string symbol(分隔符)
* @return string (yyyy*mm*dd)
* @author he
*/
private function agetobirthday($age,$symbol='-')
{
$age = $age==0?25:$age;
$nowyear = date("Y",time());
$year = $nowyear-$age;
$monthArr = [];
for ($i=1;$i<13;$i++){
$monthArr[] = $i<10?'0'.$i:$i;
}
$dayArr = [];
for ($i=1;$i<29;$i++){
$dayArr[] = $i<10?'0'.$i:$i;
}
$month_key = array_rand($monthArr,1);
$month = $monthArr[$month_key];
$date_tmp_stamp = strtotime($year.'-'.$month);
$day = '';
if( $month=='02' && date("t",$date_tmp_stamp)=='29' ) {
$dayArr = array_merge($dayArr,['29']);
$day_key = array_rand($dayArr,1);
$day = $dayArr[$day_key];
} else if ( $month=='02' && date("t",$date_tmp_stamp)=='28' ){
$day_key = array_rand($dayArr,1);
$day = $dayArr[$day_key];
} else if( in_array($month, ['01','03','05','07','08','10','12']) ) {
$dayArr = array_merge($dayArr,['29','30','31']);
$day_key = array_rand($dayArr,1);
$day = $dayArr[$day_key];
} else {
$dayArr = array_merge($dayArr,['29','30']);
$day_key = array_rand($dayArr,1);
$day = $dayArr[$day_key];
}
return $year.$symbol.$month.$symbol.$day;
} /**
* 生日转年龄
* @author he
* @parameter birthday:yyyy-mm-dd
* @return str
*/
private function birthdaytoage($birthday)
{
$age = 0;
$year = date('Y',strtotime($birthday));
$month = date('m',strtotime($birthday));
$day = date('d',strtotime($birthday)); $now_year = date('Y');
$now_month = date('m');
$now_day = date('d'); if ($now_year > $year) {
$age = $now_year - $year - 1;
if ($now_month > $month) {
$age++;
} else if ($now_month == $month) {
if ($now_day >= $day) {
$age++;
}
}
}
if(empty($birthday)){
$age = 26;
}
return $age;
}







