2014-04-02 54 views
1

我正在爲我們的家庭成員創建在線記錄。如何將出生日期轉換爲年齡並將其保存到表中?

我有兩個表Member和MemberDetails,並且BirthDate插入到'member'表中。我想使用存儲在表'Member'中的此​​BirthDate計算年齡,並將其存儲在表'Member'下的每個成員的MemberDetails表中。

+0

試試這個[link](http://stackoverflow.com/questions/7749639/how-to-get-the-difference-in-years-from-two-different-dates)。在這個例子中,你的date2將是當前日期。 –

+0

通常沒有必要將存儲的出生日期轉換爲存儲的年齡,因爲它提供了一種將差異漏入數據庫的方法(無論如何需要重新計算年齡)。爲什麼不在需要時實時計算年齡? – halfer

+0

感謝halfer,但我需要根據計算的年齡將成員分爲不同的年齡段。 :-) – user3488543

回答

2

您可以在SQL直接做到這一點,

試着這麼做

INSERT INTO Member_Detail (id, dob) 
VALUES SELECT id, TIMESTAMPDIFF(YEAR, dob, CURDATE()) FROM Member 
+0

這將更新所有成員。這應該每天完成(以確保當前的年齡),以及每當添加成員時。理想情況下,如果不爲空,則會使用死亡日期代替當前日期。 –

+0

謝謝Kami,好像這會解決我的問題。 – user3488543

+0

Paul,感謝您的建議,我計劃通過phpmyadmin運行一次查詢,然後在插入成員頁面中寫入查詢。 – user3488543

0

試試這個 -

<?php 
$birthDate = "05-03-1991"; // m-d-Y 
$birthDate = explode("-", $birthDate); 

$age = (date("md", date("U", mktime(0, 0, 0, $birthDate[0], $birthDate[1], $birthDate[2]))) > date("md") 
? ((date("Y") - $birthDate[2]) - 1) 
: (date("Y") - $birthDate[2])); 

echo "Your age is:" . $age; 
0

例子: -

<?php 
    //date in mm/dd/yyyy format; or it can be in other formats as well 
    $birthDate = "12/17/1983"; 
    //explode the date to get month, day and year 
    $birthDate = explode("/", $birthDate); 
    //get age from date or birthdate 
    $age = (date("md", date("U", mktime(0, 0, 0, $birthDate[0], $birthDate[1], $birthDate[2]))) > date("md") 
    ? ((date("Y") - $birthDate[2]) - 1) 
    : (date("Y") - $birthDate[2])); 
    echo "Age is:" . $age; 
?> 

或參閱此鏈接 PHP calculate age