假設你上面給出的數組為$arr。
成都創新互聯公司主要從事網站設計、成都網站制作、網頁設計、企業做網站、公司建網站等業務。立足成都服務金門,十年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:13518219792
$t1=0;
$t2=0;
.....
foreach($arr as $v){
if($v['age']=10||$v['age']=20){
$t1+=1; //10-20歲的數量
}
if($v['age']20||$v['age']=30){
$t2+=1; //20-30歲的數量
}
.... //按照類似寫法繼續寫
}
希望能幫到你,望采納。
年齡(周歲)的算法是固定的,假設當前年、當前月、當前日、生年、生月、生日6個整數變量分別代表當前的和出生時的年月日,那么年齡的計算采用下面兩個步驟:
年齡=(當前年-生年) - 1;
IF (當前月生月 || 當前月=生月 當前日生日) 年齡=年齡+1;
在PHP寫的程序,主要是注意變量類型轉換,下面的例子程序:
?php
$birth='1972-9-18';
list($by,$bm,$bd)=explode('-',$birth);
$cm=date('n');
$cd=date('j');
$age=date('Y')-$by-1;
if ($cm$bm || $cm=$bm $cd$$bd) $age++;
echo "生日:$birth\n年齡:$age\n";
?
補充:我這個能滿足你的要求,是非常精確的。
樓上這位如果真要求個大概的話,這樣算就復雜了,直接用date('Ymd')-日期(yyyymmdd)拿起來除就可以了。
如果是要求精確的,其實樓主的思路已經很好了,你把它寫完善一點就行了。
先日-日,差的話找月借,然后月減月,差的話找年借,最后年減年,恩,差不多就這個思路了。
寫了一個,不考慮系統占用,只考慮功能的實現:
?php
$you = 19000228;
$now = date('Ymd');
//$now = 19000501; //這一行是用來測試的
//分解當前日期為年月日
$y = (int)($now/10000);
$m = (int)(($now%10000)/100);
$d = $now%100;
//分解生日為年月日
$yy = (int)($you/10000);
$ym = (int)(($you%10000)/100);
$yd = $you%100;
//特殊日期計算
if($years%4==0 || ($years%100==0$years%400==0)){
$special=29;
}else{
$special=28;
}
//各月的上個月的天數
switch($m){
case 2:$add=31;
case 3:$add=31;
case 6:$add=31;
case 8:$add=31;
case 9:$add=31;
case 11:$add=31;
case 1:$add=31;
case 5:$add=30;
case 7:$add=30;
case 10:$add=30;
case 12:$add=30;
case 3:$add=$special;
}
if($d$yd){
$d+=$add;
$m-=1;
}
if($m$ym){
$m+=12;
$y-=1;
}
//運算年齡
if($now=$you){
$days=$d-$yd;
$months=$m-$ym;
$years=$y-$yy;
//顯示年齡
echo $years."歲".$months."月".$days."天";
}else{
echo "您還沒投胎不能計算生日..";
}
?
不知道你的語句報什么錯,我認為你不應該使用right來取日期里面的你、月、日,應該使用YEAR、MONTH、DAY函數
另外,你不能使用SELECT后面的別名作為WHERE的條件,必須使用數據庫表的字段作為條件,你要獲取65歲以上的可以使用這樣:
WHERE csrqMAKEDATE(YEAR(NOW())-65, DAYOFYEAR(NOW()))
本文標題:php數據庫計算年齡 php根據生日計算年齡
URL標題:http://m.kartarina.com/article24/dogisje.html
成都網站建設公司_創新互聯,為您提供網站改版、用戶體驗、建站公司、App開發、全網營銷推廣、網站排名
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯