2012-10-12 97 views
3

我試圖在個人資料頁面中顯示我的成員年齡。在PHP文件我只是說這個代碼向用戶展示誕生日:從MySQL的DOB獲取年齡

$data = $db->super_query("SELECT dob FROM dle_users"); 
$tpl->set("{bdate}", $data['dob']); 

,並在個人資料頁,我有這樣的結果:

1364-07-09 

它是一個波斯日期:YYYY-MM-DD

現在我需要顯示會員年齡,我在谷歌和本網站搜索,我發現了一些答案和提示,但在不會爲我工作!我不知道爲什麼。

我如何展現年齡? :(

回答

6

您可以使用MySQL的TIMESTAMPDIFF()功能在天的差異,或TIMESTAMPDIFF(MONTH, NOW(), dob)

SELECT TIMESTAMPDIFF(YEAR, dob, CURRENT_DATE) AS age FROM dle_users 
+0

它沒有顯示任何結果! – Alireza

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

1

只是爲了多種:

select year(now()) - year(dob) - if(dayofyear(now()) < dayofyear(dob), 1, 0) from dle_users