十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
假设你上面给出的数组为$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()))