2013-08-20 50 views
0

我必須承認怪異時的行爲我很新手在PHP,但看看這個請:

if(!isset($_SESSION['mailtime'])){ 
    $_SESSION['mailtime'] = time(); 
    echo 'Mail time: '. $_SESSION['mailtime'] .'</br>Time now: ' . time() . '</br>'; 
    echo 'Since last mail:' . time()-($_SESSION['mailtime']) . ' sec'; 
} 
else{ 
    echo 'Mail time: '. $_SESSION['mailtime'] .'</br>Time now: ' . time() . '</br>'; 
    echo 'Since last mail:' . time()-($_SESSION['mailtime']) . ' sec'; 
} 

,這給我類似這樣的結果:

Mail time: 10 
Time now: 16 
Since last mail: -10 sec 

什麼我的代碼錯了?我試圖讓

$mailtime = $_SESSION['mailtime']; 

但更短的變量,我得到:

Mail time: 
Time now: 
Since last mail: 0 sec 
+0

我不喜歡你如何把表達式放在echo字符串中。 – Jori

+0

另外我不知道你的代碼的一部分被執行,因爲設置'$ _SESSION ['mailtime']'的代碼被忽略。您的示例中是否設置了郵件時間? – Jori

回答

0

你舉的例子似乎有點做作。 PHP的time()函數返回一個更高的數字:

INT時間()
返回自Unix紀元(1970年1月1日00:00:00 GMT)中的秒數測量的當前時間。

有關如何使用time()函數的示例,請轉到manual page。它清楚地表明您可能會更好使用date()爲您的目的。

你應該清楚你在哪裏設置$_SESSION['mailtime']。在你的例子中,輸出結果表明在你將它與time()進行比較之前,你正在設置變量的行數。要調試,你必須顯示你的代碼,而不僅僅是一個人爲的例子。

+0

對於他的問題,這不是一個真正的答案,除非你建議他的例子不是他在執行代碼時看到的(我認爲是這樣)。 – Jori

+0

這只是一個例子,我的確有很多數字。 – hugerth