回答
如果你知道简单的数学,你会知道,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年的一半,造成了很高的错误率。
'$ time = strtotime(“ - 24 years”);'? – 2010-06-16 06:03:55
@RussellDias:从今天的日期起,仍然是24年前计算的。它导致完全相同的问题。 – animuson 2010-06-16 06:05:08
哦,好的我现在得到了问题。对不起,只好重读你写的=) – 2010-06-16 06:08:05
为了获得之日起24年前,你可以使用strtotime:
$date = strtotime("-24 year");
echo date('%c', $date);
PHP 5.3.0也推出了date_diff
function为DateTime类的一部分。
随着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);
?>
既然你不能给出一个确切的一年,最好是指定日期范围。
如果你是24岁今天(我们通常为圆形下来,不圆关),你生君1986年
加减日期的方法1985年6月17日和16之间已经已发布在此页面上。
警告:这是不准确的,但它是一个尝试。
$yearBorn = round((((time()-($age*31556926))/31556926)+70));
$yearBorn = ($yearBorn>100)? "20".substr($yearBorn,1,2):"19".$yearBorn;
我用一个简单的PHP脚本,我采用自制:My_Age_Php
欢迎来到SO!为了将来的参考,如果你有这样简单的脚本或片段,请将它们粘贴到这里。这可以防止链接腐烂,并不是每个人都倾向于从他们不知道的网站下载内容。 – NullUserException 2011-11-12 15:09:13
- 1. Excel - 如何根据“年龄月份”来计算年龄
- 2. 计算PHP的年龄5.2
- 3. 使用当年的年龄计算
- 4. 计算年龄
- 5. 年龄计算
- 6. 计算年龄
- 7. 通过计算当年 - 出生年份使用python创建年龄计算器
- 8. 如何在PHP中使用年,月,日计算年龄?
- 9. 如何使用php来计算用户输入年和月的年龄?
- 10. 年龄后搜索用户。如何计算正确的年龄?
- 11. 在SQL中计算年龄年龄
- 12. jQuery年龄计算不计算闰年
- 13. PHP年龄计算器错误的年龄
- 14. 年龄计算器不显示计算的年龄
- 15. 如何在Excel中使用datedif()来计算月份的年龄
- 16. 计算年龄Teradara
- 17. 计算年龄JavaScript
- 18. jquery年龄计算
- 19. 计算考虑闰年的java年龄
- 20. 如何创建一个年龄计算器,以年,日,年来讲述年龄?
- 21. PHP:如何计算月龄+天的人的年龄?
- 22. Flex中的年龄计算
- 23. 的Javascript - 计算年龄
- 24. 计算AngularJS中给定年份的年龄
- 25. PHP计算人的当前年龄
- 26. 计算成员的平均年龄(PHP)
- 27. 计算人的年龄从PHP
- 28. PHP计算年龄的DateTime ::差异
- 29. 使用Javascript的年龄计算器
- 30. PHP:如何计算月龄的人年龄
正是我们需要的一年1986年animuson。在这种情况下,我们不需要关心月份和年份。有没有办法 – Fero 2010-06-16 06:01:35