繁体   English   中英

将3列(天,月,年)转换为PHP日期/时间戳

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM