2010-06-16 77 views
5

如何计算使用php进入我的年龄的年份。如何计算使用php进入我的年龄的年份

例如:

我正在进入我的年龄为24

所以,我需要得到一年1985

如何可以做到这一点。

在此先感谢

+0

正是我们需要的一年1986年animuson。在这种情况下,我们不需要关心月份和年份。有没有办法 – Fero 2010-06-16 06:01:35

回答

7

如果你知道简单的数学,你会知道,2010 - 24 - 1 = 1985$year = date("Y") - $theirage - 1 ...但是只给一个年龄不准确推断他们出生何年。例如:

如果日期是2010年12月30日,他们说他们是24岁,那么你仍然说他们出生在1985年,他们实际上是在1986年出生的机会非常高,。你不能依靠他们的年龄来给你他们的出生年。

编辑 如果不是很清楚:

今天的日期是6月16日,2010年 所以是24岁,我会需要进行6月17日之间出生的地方,1985年, 1986年6月16日。这个数字接近1985年的一半,接近1986年的一半,造成了很高的错误率。

+2

'$ time = strtotime(“ - 24 years”);'? – 2010-06-16 06:03:55

+1

@RussellDias:从今天的日期起,仍然是24年前计算的。它导致完全相同的问题。 – animuson 2010-06-16 06:05:08

+0

哦,好的我现在得到了问题。对不起,只好重读你写的=) – 2010-06-16 06:08:05

1

为了获得之日起24年前,你可以使用strtotime

$date = strtotime("-24 year"); 
echo date('%c', $date); 
1

随着DateTime

PHP> 5.2

<?php 
     function getBirthYear($age) { 
       $now = new DateTime(); 
       $now->modify("-" . $age . " years"); 
       return $now->format("Y"); 
     } 

     echo getBirthYear(24); 
?> 

PHP> 5.3

<?php 
     function getBirthYear($age) { 
       $now = new DateTime(); 
       $now->sub(new DateInterval("P" . $age . "Y")); 
       return $now->format("Y"); 
     } 

     echo getBirthYear(24); 
?> 
1

既然你不能给出一个确切的一年,最好是指定日期范围。

如果你是24岁今天(我们通常为圆形下来,不圆),你生君1986年

加减日期的方法1985年6月17日和16之间已经已发布在此页面上。

0

警告:这是不准确的,但它是一个尝试。

$yearBorn = round((((time()-($age*31556926))/31556926)+70)); 
$yearBorn = ($yearBorn>100)? "20".substr($yearBorn,1,2):"19".$yearBorn; 
1

我用一个简单的PHP脚本,我采用自制:My_Age_Php

+0

欢迎来到SO!为了将来的参考,如果你有这样简单的脚本或片段,请将它们粘贴到这里。这可以防止链接腐烂,并不是每个人都倾向于从他们不知道的网站下载内容。 – NullUserException 2011-11-12 15:09:13