2

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

注册号是这样UXXEEXXXX的,其中XX前两位代表用户入校年份的后两位,EEX代表部门,后三位XXX代表学生的编号,根据他的时间挂号的。

例如,in U08EE1117U代表本科,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 年内有效。)

4

1 回答 1

4

我会说你有一个好的开始。您需要做的就是解决环绕问题,如果差值是负数,则加 100:

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

这给出了自学生开始学习以来的日历年数,如果当前学年已经开始,您可能需要添加一个。然后只需乘以 100 即可获得您指定的级别。

于 2013-04-24T22:53:07.100 回答