我正试图在个人资料页面显示我的成员年龄。在php文件中我刚添加此代码以显示用户出生日期:
$data = $db->super_query( "SELECT dob FROM dle_users" );
$tpl->set("{bdate}", $data['dob']);
在个人资料页面中我有这个结果:
1364-07-09
这是波斯语的日期:yyyy-mm-dd
现在我需要显示成员年龄,我在谷歌和这个网站搜索,我找到了一些答案和提示,但不会为我工作!我不知道为什么。
我怎么能显示年龄? :(
答案 0 :(得分:6)
您可以使用MySQL的TIMESTAMPDIFF()
功能:
SELECT TIMESTAMPDIFF(YEAR, dob, CURRENT_DATE) AS age FROM dle_users
答案 1 :(得分:2)
看看MySQL(如果这就是你正在使用的)日期函数,他们会为你做一整套转换。
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
可能DATEDIFF( NOW(), dob )
或某些此类malarkey,但这会返回天数差异,或TIMESTAMPDIFF(MONTH, NOW(), dob )
几个月
答案 2 :(得分:1)
您可以使用
SELECT DATEDIFF(dob, NOW()) AS difference from dle_users;
这将为您提供使用PHP
转换为各种格式的日期差异date("m/d/y g:i (A)", $DB_Date_Field);
您也可以直接使用TIMESTAMPDIFF:
SELECT TIMESTAMPDIFF(YEAR, dob, CURDATE()) as difference from dle_users;
读 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_timestampdiff
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_curdate
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_datediff
答案 3 :(得分:1)
只是为了变化:
select year(now()) - year(dob) - if(dayofyear(now()) < dayofyear(dob), 1, 0) from dle_users