如何根据两位数的起始年度计算当前学年?

时间:2013-04-24 22:46:35

标签: php 2-digit-year

我正在开展一个学校网络项目,我需要从他/她唯一的注册号码中了解特定学生的年份。

注册号看起来像UXXEEXXXX,其中前两个XX代表用户加入学校的年份的最后两位数,EEX代表部门,以及最后三个XXX代表学生在注册时的序列号。

例如,在U08EE1117中,U代表本科,08表示用户在2008年加入了学校,EE1表示部门和1还说用户从第一年开始,117表示用户是在该部门注册的第117位学生。

我想用PHP来获取用户的当前级别,第一年表示为100级,第二年表示为200级,最后一年学生则为500级。

我做的是:

$yr = ((integer)substr($_SESSION["username"], 1,2));    
$cur = substr(date("Y"), 2, 3);
$level = $cur - $yr;

其中$_SESSION["username"]是注册号。

但我注意到这很多年都没用。我想知道解决这个问题的最简单方法。 (注册号仅在100年内有效。)

1 个答案:

答案 0 :(得分:4)

我会说你有一个良好的开端。您需要做的就是通过在差异中添加100来解决环绕问题:

$yr = substr($_SESSION["username"], 1, 2);    
$cur = date("y");  // two-digit year
$diff = $cur - $yr;
if ($diff < 0) $diff += 100;

这给出了自学生开始以来的日历年数,如果当前学年已经开始,您可能需要添加一年。然后乘以100得到你指定的水平。