[英]Convert 3 columns (day,month,year) to PHP Date/Timestamp
我有一个包含3列的数据库,全部为VARCHAR(20)
dob_day
dob_month
dob_year
我如何将它们转换为PHP日期/时间戳并获取一个人的年龄(该行)
例如,如果我有以下内容:
dob_day = 07
dob_month = 08
dob_year = 1994
这需要显示19,因为用户将19岁
您应该将出生date
作为date
存储。 此解决方案将从数据库端返回年龄:
SELECT TIMESTAMPDIFF(YEAR,CONCAT(dob_year, '-', dob_month, '-', dob_day),CURDATE()) AS `age`
结果
| AGE | ------- | 19 |
尝试这个:
$dob_day = '07';
$dob_month = '08';
$dob_year = '1994';
date_default_timezone_set('UTC');
$now = new DateTime(Date('Y-m-d'));
$diff = $now->diff(new DateTime($dob_month.'-'.$dob_day.'-'.$dob_year));
printf('%d years, %d month, %d days', $diff->y, $diff->m, $diff->d);
版画: 19 years, 1 month, 26 days
如果只需要打印年份,则可能会执行以下操作:
$dob_year = 1994;
date_default_timezone_set('UTC');
$now = new DateTime(Date('Y-m-d'));
$date = DateTime::createFromFormat("Y-m-d", Date("Y-m-d"));
$year = $date->format("Y");
echo $year - $dob_year;
版画: 19
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.