【发布时间】:2011-03-23 19:10:57
【问题描述】:
我的网站上有12.01.1980 格式的出生日期。
$person_date (string) = Day.Month.Year
想添加一个人的故乡。比如“目前 30 年”(2010 - 1980 = 30 年)。
但是仅仅在几年内完成这个功能并不能给出完美的结果:
如果人的出生日期是 12.12.1980 并且当前日期是 01.01.2010,则此人未满 30 岁。 29年零一个月。
必须通过比较当前日期来计算定位出生年月日:
0) 解析日期。
Birth date (Day.Month.Year):
Day = $birth_day;
Month = $birth_month;
Year = $birth_year;
Current date (Day.Month.Year):
Day = $current_day;
Month = $current_month;
Year = $current_year;
1) 年份比较,2010 - 1980 = 写“30”(让它成为$total_year 变量)
2) 比较月份,如果(出生日期月份大于当前月份(例如出生日期为 12,当前月份为 01)){从$total_year 变量 (30 - 1 = 29) 中减去一年}。如果do减发生,此时完成计算。否则进行下一步(3 步)。
3)else if (birth month < current month) { $total_year = $total_year (30); }
4) else if (birth month = current month) { $total_year = $total_year (30); }
并检查日期(在此步骤中):
if(birth day = current day) { $total_year = $total_year; }
else if (birth day > current day) { $total_year = $total_year -1; }
else if (birth day < current day) { $total_year = $total_year; }
5) 回显 $total_year;
我的php知识不太好,希望大家帮忙
谢谢。
【问题讨论】:
-
计算出生日期和现在之间的天数,乘以 4,除以 1461(而不是浮点除以 365.25)?
-
@pascal:你怎么算日子?