Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从今天的生日算起年龄_Php_Mysql_Datetime - Fatal编程技术网

Php 从今天的生日算起年龄

Php 从今天的生日算起年龄,php,mysql,datetime,Php,Mysql,Datetime,我制作了一个脚本,显示今天过生日的人。 除此之外,我还想说明这些人的年龄。 我已经找到了许多可行的解决方案,但我不知道如何在我当前的代码中实现 以下是我当前的代码: <?php $sql = "SELECT * FROM birthday WHERE MONTH(dob) = MONTH(NOW()) AND DAY(dob) = DAY(NOW())"; $result = $conn->query($sql); if($result->num_rows > 0) {

我制作了一个脚本,显示今天过生日的人。 除此之外,我还想说明这些人的年龄。 我已经找到了许多可行的解决方案,但我不知道如何在我当前的代码中实现

以下是我当前的代码:

<?php
$sql = "SELECT * FROM birthday WHERE MONTH(dob) = MONTH(NOW()) AND DAY(dob) = DAY(NOW())";
$result = $conn->query($sql);
if($result->num_rows > 0)
{
while($row = $result->fetch_assoc())
{
echo "<p>".$row["first_name"]." ".$row["last_name"]."</p>";
}
}
else
{
echo "There are no birthdays today";
}
$conn->close();
编辑:这当然只有在你生日当天和之后才是正确的。但是,由于你只在生日那天显示年龄,这个等式在你的情况下是正确的

年龄不就是当年减去出生年份吗?因此,您可以将选择更改为:

选择*,dearhow-YEARdob作为从生日开始的年龄,其中MONTHdob=MONTHNOW和DAYdob=DAYNOW 或者,您也可以通过php的方式:

$sql=SELECT*FROM birthdob=MONTHNOW和DAYdob=DAYNOW; $result=$conn->query$sql; $current_year=dateY; 如果$result->num_rows>0{ 而$row=$result->fetch\u assoc{ $birthday=date_parse$row[dob]; $age=null; ifis_数组$生日{ $age=$current_year-$birth[year]; } echo$row[名字]…$row[姓氏]。现在是+$age+岁。

; } } 否则{ 今天没有生日; } $conn->close;
这就是年龄的定义,不是吗?[P] 几年来[…]有些东西还活着。这是出生年份减去当前年份。你出生于1980年,2020-1980年=40。那是你生日当天和之后的年龄。不。问题是在生日那天显示年龄。这就是为什么人们可以忽略这些日子。该年龄仅在2020年12月您生日时显示和计算。