2015-06-21 2 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

время() возвращает отметку времени 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

Слово рождается. Я не тестировал код, и да, я забыл разделить на 60, чтобы пересчитать до минут. Сейчас я отредактирую. –

1

Функция php time() возвращает в секундах (начиная с эпохи Unix).

Вы добавляете «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()

Смежные вопросы