我正在开展一个学校网络项目,我需要从他/她唯一的注册号码中了解特定学生的年份。
注册号看起来像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年内有效。)
答案 0 :(得分:4)
我会说你有一个良好的开端。您需要做的就是通过在差异中添加100来解决环绕问题:
$yr = substr($_SESSION["username"], 1, 2);
$cur = date("y"); // two-digit year
$diff = $cur - $yr;
if ($diff < 0) $diff += 100;
这给出了自学生开始以来的日历年数,如果当前学年已经开始,您可能需要添加一年。然后乘以100得到你指定的水平。