PHP - 通过手动设置日期来确定和计算年龄

时间:2014-02-22 05:15:22

标签: php date

我有PHP代码,它从出生日期开始计算当前年龄。

我的问题是如何确定年龄,如果我只是预测某个人在给定日期的年龄。

例如,到2020年5月30日这个人的年龄将是什么,而不是我们现有的2014年,这个人的生日将会是多少个月。

我在这里找不到任何相关的帖子,因为大部分时间都计算了当前日期的年龄。

以下是在当前日期计算年龄的代码。

 <?php
  // if-> To Check whether form has been submitted
     if(isset($_POST['submit']))
     {
     $d=$_POST['day'];
     $m=$_POST['month'];
     $y=$_POST['year'];

     //converting Inputed DOB in "dd-mm-yyyy" format
     $dob=$d.'-'.$m.'-'.$y;

     //Create a new date object with current system date
     $bday=new DateTime($dob);

     //Differentiating both dates
     $age=$bday->diff(new DateTime);

     $today=date('d-m-Y'); //Current date
     echo '<br /><br /><br />';
     echo '<b>Your Birth date: </b>';
     echo $dob;
     echo '<br><b>Today : </b> ';
     echo $today;
     echo '<br>';
     echo '<b>Your Age : </b> ';
     echo $age->y;
     echo ' Years, ';
     echo $age->m;
     echo ' Months, ';
     echo $age->d;
     echo ' Days';
     }
     ?>

我只是想提前确定那个人的年龄和岁月。

提前Tnx。

1 个答案:

答案 0 :(得分:-1)

time()函数获取自上一个UNIX纪元(1970年1月1日)以来的秒数。通过添加或减去每个日期之间的秒数,然后将它们转换为更大的单位(例如,天,月,年),可以使用UNIX时间戳来轻松获得时间差异。只需添加一个额外的表单输入以获取未来的日期(或在您的代码中指定它),然后使用类似的东西......

<?php

$d=$_POST['day'];
     $m=$_POST['month'];
     $y=$_POST['year'];

$dob=$d.'-'.$m.'-'.$y;

$fd=$_POST['future_day'];
     $fm=$_POST['future_month'];
     $fy=$_POST['future_year'];

$specified_date = $fd.' - '.fm.' - '.fy;

echo calculate_age($dob, $specified_date);

function calculate_age($date_of_birth, $specified_date){

$unix_dob = strtotime($specified_date); //Convert inputted date of birth to unix timestamp
$unix_today = time(); //Current unix timestamp

$unix_diff = $unix_today - $unix_dob; //Difference between current unix and DOB unix

$current_age = floor($unix_diff / (60 * 60 * 24 * 365)); 

return $current_age;

}

?>