2015-06-21 84 views
-1

我想設置一個鏈接失效日期用PHP:PHP - 以分鐘爲單位顯示鏈接過期時間

我想,當用戶創建我的網站上一個新的短鏈接則應該會自動創建之第五天刪除。

我完全與下面的代碼混淆。我想把這段代碼放在用戶的通知頁面上,這樣它可以告訴他們有多少分鐘的時間會讓鏈接過期。

<?php 
$created=time(); 
$expire=$created + 5; 
$total_minutes=$expire/5/60; 
echo "Link expires in $total_minutes minutes";?> 

它輸出一個意外的長數。

我該如何實現此代碼才能輸出7200或剩餘的分鐘數?

+0

如果你只需要在幾分鐘的剩餘時間量,足以打印「5 * 24 * 60」,其中5架5天。以下鏈接將爲您提供完成任務所需的信息:http://php.net/manual/en/function.time.php – varnie

+0

您在哪裏存儲鏈接及其創建和到期時間?我假設在一個數據庫中,有一個userid密鑰? –

回答

1

time()返回UNIX時間戳。

如果你想人類可讀的輸出,考慮DateTime類在PHP中:http://php.net/manual/en/class.datetime.php

例子:

<?php 

$created = new DateTime('now'); 
$expiration_time = new DateTime('now +5minutes'); 
$compare = $created->diff($expiration_time); 
$expires = $compare->format('%i'); 

echo "Your link will expire in: " . $expires . " minutes"; 

?> 
1
<?php 
$created = strtotime('June 21st 20:00 2015'); // time when link is created 
$expire = $created + 432000; // 432000 = 5 days in seconds 
$seconds_until_expiration = $expire - time(); 
$minutes_until_expiration = round($seconds_until_expiration/60); // convert to minutes 
echo "Link expires in $minutes_until_expiration minutes"; 
?> 

注意,創建$不應在腳本運行時進行,但保存某處,否則此腳本將始終報告該鏈接在5天內過期。

+0

Word誕生了。我還沒有測試過代碼,是的,我忘了分60分鐘來換個分鐘。我現在編輯。 –

1

php函數time()以秒爲單位返回(自Unix時代起)。

添加「5」只需5秒鐘。

五天你需要加上5 * 24 * 60 *60的總和,這是五天的秒數。

在代碼:

$created = time(); 
$expires = $created + (5 * 24 * 60 * 60); 

if ($expires < time()) { 
    echo 'File expired'; 
} else { 
    echo 'File expires in: ' . round(((time() + 1) - $created)/60) . ' minutes'; 
} 

請參考PHP: time()

相關問題