2013-04-24 75 views
2

我正在學校的一個web項目上工作,我需要知道他/她的唯一註冊號碼是哪一年特定的學生。如何根據兩位數開始年份計算當前學年?

註冊號看起來像UXXEEXXXX,其中前兩個XX的代表用戶加入了學校的一年中的最後兩位數字,EEX代表的部門,過去三年XXX的代表的序列號學生根據他何時註冊的時間。

例如,在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

我想說你已經有了一個好的開始。所有你需要做的是將100至差固定纏繞的問題,如果是負:

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

這給出了歷年的數量,因爲學生開始,你也許會需要添加一個,如果目前的學年已經開始。然後,乘以100以獲得您指定的級別。

+0

是的,這比我放的答案更好! – craig1231 2013-04-24 22:54:13

+0

啊,我現在看到,我明白了,像1999年和2001年那樣,正常的減法給出了負值(即-2),加上100給出了2,因此用戶處於200級別,作品感謝 – 2013-04-24 23:15:07

相關問題