如何使用 PHP 中的年、月、日等变量计算一个人的年龄
How to calculate the age of a person using variables like: year, month, day in PHP
我曾尝试使用下面的代码获取一个人的年龄,虽然我希望输出是您的确切年龄,但如果您的生日早于当前日期,它会读取错误的年龄,但如果您的生日晚于当前日期,请更正代码
<?php
$name = $_POST['name'];
$month = $_POST['month'];
$day = $_POST['day'];
$year = $_POST['year'];
$age = date('Y') - $year - 1 ;
if (date('F') <= $month) {
$age = date('Y') - $year;
}
$nos = $_POST['nos'];
$gender = $_POST['gender'];
$loa = $_POST['loa'];
echo "<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'><b>`Name:`</b> $name</div>";
echo "<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'><b>`Birth Date:`</b>
$month-$day-$year </div>";
echo "<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'><b>`Age:`</b> aprox.
$age</div>";
echo "<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'><b>`Name of School:`</b>
$nos</div>";
echo "<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'><b>`Gender:`</b>
$gender</div>";
echo "<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'><b>`Level of Academics:`</b>
$loa</div>";
?>
你可以用它来计算年龄:
$today = new DateTime("now");
$birthdate = new DateTime("$year-$month-$day");
$age = $today->diff($birthdate)->y;
更新:
所以经过一些清理的整个代码如下:
<?php
$name = $_POST['name'];
$month = $_POST['month'];
$day = $_POST['day'];
$year = $_POST['year'];
$today = new DateTime("now");
$birthdate = new DateTime("$year-$month-$day");
$age = $today->diff($birthdate)->y;
$nos = $_POST['nos'];
$gender = $_POST['gender'];
$loa = $_POST['loa'];
?>
<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'>
<b>`Name:`</b>
<?php echo $name; ?>
</div>;
<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'>
<b>`Birth Date:`</b>
<?php echo $birthdate->format('Y-m-d'); ?>
</div>;
<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'>
<b>`Age:`</b> aprox.
<?php echo $age; ?>
</div>;
<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'>
<b>`Name of School:`</b>
<?php echo $nos; ?>
</div>;
<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'>
<b>`Gender:`</b>
<?php echo $gender; ?>
</div>;
<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'>
<b>`Level of Academics:`</b>
<?php echo $loa; ?>
</div>;
根据您的代码,F
应替换为 n
:
F
月份的完整文本表示,例如一月或三月
一月到十二月
n
月份的数字表示,不带前导零
1 到 12
if (date('n') <= $month) {
$age = date('Y') - $year;
}
我曾尝试使用下面的代码获取一个人的年龄,虽然我希望输出是您的确切年龄,但如果您的生日早于当前日期,它会读取错误的年龄,但如果您的生日晚于当前日期,请更正代码
<?php
$name = $_POST['name'];
$month = $_POST['month'];
$day = $_POST['day'];
$year = $_POST['year'];
$age = date('Y') - $year - 1 ;
if (date('F') <= $month) {
$age = date('Y') - $year;
}
$nos = $_POST['nos'];
$gender = $_POST['gender'];
$loa = $_POST['loa'];
echo "<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'><b>`Name:`</b> $name</div>";
echo "<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'><b>`Birth Date:`</b>
$month-$day-$year </div>";
echo "<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'><b>`Age:`</b> aprox.
$age</div>";
echo "<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'><b>`Name of School:`</b>
$nos</div>";
echo "<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'><b>`Gender:`</b>
$gender</div>";
echo "<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'><b>`Level of Academics:`</b>
$loa</div>";
?>
你可以用它来计算年龄:
$today = new DateTime("now");
$birthdate = new DateTime("$year-$month-$day");
$age = $today->diff($birthdate)->y;
更新:
所以经过一些清理的整个代码如下:
<?php
$name = $_POST['name'];
$month = $_POST['month'];
$day = $_POST['day'];
$year = $_POST['year'];
$today = new DateTime("now");
$birthdate = new DateTime("$year-$month-$day");
$age = $today->diff($birthdate)->y;
$nos = $_POST['nos'];
$gender = $_POST['gender'];
$loa = $_POST['loa'];
?>
<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'>
<b>`Name:`</b>
<?php echo $name; ?>
</div>;
<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'>
<b>`Birth Date:`</b>
<?php echo $birthdate->format('Y-m-d'); ?>
</div>;
<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'>
<b>`Age:`</b> aprox.
<?php echo $age; ?>
</div>;
<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'>
<b>`Name of School:`</b>
<?php echo $nos; ?>
</div>;
<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'>
<b>`Gender:`</b>
<?php echo $gender; ?>
</div>;
<div style ='font:21px Arial,tahoma,sans-serif;color:#7a1ac4'>
<b>`Level of Academics:`</b>
<?php echo $loa; ?>
</div>;
根据您的代码,F
应替换为 n
:
F
月份的完整文本表示,例如一月或三月
一月到十二月
n
月份的数字表示,不带前导零
1 到 12
if (date('n') <= $month) {
$age = date('Y') - $year;
}