2010-07-03 74 views
0

我有3個變量$ day,$ month,$ year,它們每個都具有用戶給它們的值。PHP:如何從php,日曆,月,年?

我想從這3個變量中獲得他的真實年齡。

例如用戶輸入該日期爲他的生日在這種格式日,月,年:

04,07,1990年 - >現在他的年齡是19


02,07,1990 - >現在他的年齡是20

我想這樣做。

我希望它很清楚。

+0

看看此相關的職位:http://stackoverflow.com/questions/3051011/how-to-calculate-year-from -entering-my-age-using-php/3051101#3051101 – Babiker 2010-07-03 18:23:16

回答

2

可以使用像這樣:

function age($bMonth,$bDay,$bYear) { 
    list($cYear, $cMonth, $cDay) = explode("-", date("Y-m-d")); 
    return (($cMonth >= $bMonth && $cDay >= $bDay) || ($cMonth > $bMonth)) ? $cYear - $bYear : $cYear - $bYear - 1; 
} 
+0

也許我做錯了什麼,但不起作用 – Adam 2010-07-03 18:07:45

+0

對不起,我修改了它 - 現在應該可以使用。 – xil3 2010-07-03 18:28:30

+0

嗯,因爲我看到它的作品,但我接受它之前測試了一下;) – Adam 2010-07-03 18:32:25

0

可以使用datediff(自定義)功能。你需要從當前日期減去出生日期。

例子:

echo 'Now his age is ' . datediff('yyyy', '9 July 1990', '3 June 2010', false); 

結果:

Now his age is 19 
+1

沒有'DateDiff'函數... 您可以實例化DateTime兩次(使用當前日期和出生日期),然後調用它的diff方法。 我的觀點是,你並不是很有幫助/具體... – xil3 2010-07-03 18:03:33

+0

@ xil3:這實際上是一個自定義函數。 – Sarfraz 2010-07-03 18:05:16

+1

@ xil3你說得對,沒有名爲DateDiff的內置函數,這就是爲什麼他鏈接到它。 – 2010-07-03 18:05:26