如何计算年龄和天数?

时间:2011-11-04 08:44:52

标签: php date

我刚刚搜索过,没有得到我需要的东西。

我只想在几天之内转换年龄

  

20123天

并且在几秒钟内

  

432344344秒

。 我该怎么做?

如果我得到解决方案,我可以将它分成几秒钟。

---我正在寻找PHP解决方案

7 个答案:

答案 0 :(得分:2)

  • 一年有365天
  • 一天有24小时
  • 一小时有60分钟
  • 一分钟60秒

所以你必须成倍增加。

为了知道它是否是一个跳跃,你可以使用这个伪代码:

if year modulo 4 is 0
   then
       if year modulo 100 is 0
           then
               if year modulo 400 is 0
                   then
                       is_leap_year
               else
                   not_leap_year
       else is_leap_year
else not_leap_year

答案 1 :(得分:2)

PHP

$birthday = '1989-03-06';
$now = date("Y-m-d");
echo 'You are '. date_diff(date_create($birthday), date_create($now))->format('%a days old');

答案 2 :(得分:0)

什么编程语言?

在C#中:

var begin = new DateTime("1970/01/01");
var end = new DateTime("2011/01/01");

TimeSpan diff = end - begin;

var days = diff.Days
var seconds = diff.TotalSeconds

答案 3 :(得分:0)

C#

DateTime today = DateTime.Now;
DateTime birthday = new DateTime(year, month, date);
TimeSpan diff = today - birthday;
MessageBox.Show(diff.TotalDays.ToString());

答案 4 :(得分:0)

首先,您需要精确地获得出生日期和时间。我不确定这是否有意义:婴儿需要几分钟才能出生。

然后你转换出生日期&时间测量的时间(就像从Epoch测量的Unix time_t秒,即1970年1月1日0:00 GMT)。

您可以将当前时间设为time_t

然后减去,你的年龄只有几秒钟。

答案 5 :(得分:0)

如果你不太担心小的不准确(a),一年平均有365.2425天,一天有86,400秒。


(a)一旦孩子达到1岁,错误率已经下降到最大 1 / 365 或0.3%。在我成熟的年龄,它下降到0.006%,所以不值得担心: - )

答案 6 :(得分:0)

为了超级准确,您需要考虑闰年:

function get_age($dob_day,$dob_month,$dob_year){
    $year   = gmdate('Y');
    $month  = gmdate('m');
    $day    = gmdate('d');
     //seconds in a day = 86400
    $days_in_between = (mktime(0,0,0,$month,$day,$year) - mktime(0,0,0,$dob_month,$dob_day,$dob_year))/86400;
    $age_float = $days_in_between / 365.242199; // Account for leap year
    $age = (int)($age_float); // Remove decimal places without rounding up once number is + .5
    return $age;
}

然后使用它:

echo get_date(31, 01, 1985);

如果需要,您可以在$ age float上进行额外的数学运算,将其转换为秒。