<?php
//Premium time
try{
$pdo = new PDO('mysql:host=localhost;dbname=time', 'root', '');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo -> query('SELECT `premium_time`, `premium_end`, `days` FROM `premium`');
echo '<ul>';
while($row = $stmt->fetch()){
$actual_date = date('Y-m-d H:i:s');
$remained = (strtotime($row['premium_time']) - strtotime($row['premium_end'])) / (60*60*24);
if($actual_date >= $row['premium_end']){
echo '<li>Koniec okresu premium!</li>';
}else{
echo '<li>Pozostało '.$remained.' dni do końca okresu premium!</li>';
}
}
$stmt->closeCursor();
echo '</ul>';
}
catch(PDOException $e){
echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
}
?>
Zwraca mi to:
Pozostało -30.971527777778 dni do końca okresu premium!
Dlaczego czas jest na minusie oraz jak pozbyć się zaogrąglenia? Jak w ogóle wyśietlić konkretną datę do końca okresu premium w formacie (Y-m-d H:i:s)? Podczas dodawania konta pobieram aktualną datę i zapisuję ją do kolumny premium_time
oraz wykonuję opercję dodania + 30 dni do tej daty i ów datę zapisuję do kolumny premium_end
. Teraz nie bardzo wiem jak pobrać czas do końca okresu premium. Jak to zrobić?