У меня пишет дату последнего посещения в виде
Код: Выделить всё
$cdate = date("Y-m-d G:i:s");
а хочется, чтобы
Последний раз был здесь 1 день и 10 часов назад
а если день не прошел, то столько-то часов назад
Код: Выделить всё
$cdate = date("Y-m-d G:i:s");
Код: Выделить всё
$oldtime = 1343631396; // TIMESTAMP последнего посещения $currenttime = time() - $oldtime;$days = floor($currenttime / 86400);$hours = floor(($currenttime - $days * 86400) / 3600);if($days) echo "Прошло: " . $days . " дней, " . $hours . " часов.";else if($hours) echo "Прошло: " . $hours . " часов.";else echo "Прошло менее часа";
Код: Выделить всё
$cdate = time();$query = "INSERT INTO $table SET vkid='$uid', data='$cdate'";
Код: Выделить всё
$oldtime = $row['data']; // TIMESTAMP последнего посещения$currenttime = time() - $oldtime;$days = floor($currenttime / 86400);$hours = floor(($currenttime - $days * 86400) / 3600);if($days) echo "Прошло: " . $days . " дней, " . $hours . " часов.";else if($hours) echo "Прошло: " . $hours . " часов.";else echo "Прошло менее часа";
Код: Выделить всё
$oldtime = $row['data'];
Код: Выделить всё
$cdate = date("Y-m-d G:i:s");
Код: Выделить всё
$cdate = date("Y-m-d G:i:s", time());
Код: Выделить всё
$oldtime = 1343631396; // TIMESTAMP последнего посещения
Код: Выделить всё
$currenttime = time() - $oldtime;
Код: Выделить всё
mysql_query("UPDATE " . $table . " SET date=" . time() . " WHERE vkid = " . $uid);
Код: Выделить всё
$array = mysql_fetch_assoc(mysql_query("SELECT * FROM " . $table . " WHERE vkid = " . $uid)); $oldtime = $array['date']; // TIMESTAMP последнего посещения$currenttime = time() - $oldtime;$days = floor($currenttime / 86400);$hours = floor(($currenttime - $days * 86400) / 3600);if($days) echo "Прошло: " . $days . " дней, " . $hours . " часов.";else if($hours) echo "Прошло: " . $hours . " часов.";else echo "Прошло менее часа"; //Так же можете его использовать и в таких конструкциях:echo "Дата последнего посещения: " . date("Y-m-d G:i:s", $array['date']);
Почему же, если пользователь был неделю назад, то TIMESTAMP будет меньше чем тот который сейчас. Например 5 минут назад TIMESTAMP был на 300 меньше чем сейчас.Fedya писал(а):Получается тут мы отнимаем от меньшего большое, нет?Код: Выделить всё
$currenttime = time() - $oldtime;
Код: Выделить всё
$days = floor($currenttime / 86400);$hours = floor(($currenttime - $days * 86400) / 3600);$min = floor(($currenttime - $days * 86400 - $hours * 3600)/60);$sec = floor(($currenttime - $days * 86400 - $hours * 3600 - $min*60)/60);