【发布时间】:2022-12-09 05:53:33
【问题描述】:
在家谱网站(php/MySQL)上,今天生日的人在欢迎页面上,并提到他们的年龄
我正在使用此代码,其中 $ddn 是出生日期(DateTime 对象):
$datenow = new DateTime();
$age = $ddn->diff($datenow)->format('%Y');
一般没问题,年龄合适。
但我今天发现,我的爷爷,100 年前的 12 月 3 日出生。 1922年,据说是99岁。
我试图将出生日期更改为不同的值,并得到这些计算出的年龄:
| Date of birth (Y-m-d) | Age |
|---|---|
| 1952-12-03 | 70 |
| 1942-12-03 | 80 |
| 1941-12-03 | 81 |
| 1940-12-03 | 82 |
| 1939-12-03 | 82 |
| 1938-12-03 | 83 |
| 1932-12-03 | 89 |
| 1922-12-03 | 99 |
在 1940-12-03 之前一切正常,如果出生日期早些就会出错。
在 1939 年和 1940 年之间发生了什么,以至于 1940 年之前出生的人的每个计算年龄都变成错误的?
如何解决?
谢谢
【问题讨论】: