[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: время когда добавлен пост
m4a1fox
Доброго времени суток уважаемые эксперты. Есть такой вопрос. На некотороых сайта видел такую штуку. Когда юзер открывает страницу на кот. есть новость. То около новости выводятся время. Ну тира того что - (45 минут назад). То есть насколько я понимаю, скрипт высчитывает время, когда пользователь открывает страницу, отнимает время опубликования новости, и выводит результат. Если так, то где это можно посмотреть?! Спасибо!



Спустя 9 минут, 38 секунд (21.02.2011 - 03:02) two написал(а):
m4a1fox
В бд пишешь в секундах время получаемое с помощью функции
echo time();
А при выборке пишешь так:
echo time() - $time; // Это будет та разница в секундах. В переменной $time содержится запись из бд.

Спустя 5 минут, 9 секунд (21.02.2011 - 03:08) m4a1fox написал(а):
two
Таакк.... я в БД и так заношу время. Значит - вывожу time() - и отнимаю $time(из БД) - я вас правильно понял?

Спустя 1 минута, 4 секунды (21.02.2011 - 03:09) two написал(а):
m4a1fox
Да

Спустя 4 минуты, 23 секунды (21.02.2011 - 03:13) m4a1fox написал(а):
ха. Не интересно. функция time() - считает только секунды(

Спустя 2 минуты, 6 секунд (21.02.2011 - 03:15) Invis1ble написал(а):
ну а кто тебе мешает перевести секунды в другой формат?

Спустя 5 минут, 6 секунд (21.02.2011 - 03:20) two написал(а):
m4a1fox
round((time() - $time)/60); // минуты
round((time() - $time)/3600); // часы

Спустя 2 минуты, 48 секунд (21.02.2011 - 03:23) m4a1fox написал(а):
two
ааааааа об этом я и не подумал.)

Спустя 7 минут, 47 секунд (21.02.2011 - 03:31) m4a1fox написал(а):
И так вот к чему пришел на этот момент. Из БД вытаскиваю время добавления.

echo time($ind['time']);
echo '<br />';
echo round(time() - time($ind['time'])/3600)
поправьте если что!?

Спустя 3 минуты, 55 секунд (21.02.2011 - 03:35) m4a1fox написал(а):
Получается что я не могу применить time к тому что уже вытаскиваю из БД?!

Спустя 9 минут, 49 секунд (21.02.2011 - 03:45) m4a1fox написал(а):
я тут применил функция microtime. Как думаете получится?

Спустя 2 минуты, 49 секунд (21.02.2011 - 03:47) m4a1fox написал(а):
Нет! Вариант не прокатил. Буду думать но уже завтра

Спустя 41 минута, 42 секунды (21.02.2011 - 04:29) two написал(а):
m4a1fox
echo $ind['time'];// это секунды из бд
echo round(time() - $ind['time'] / 3600;// не нужно вставлять в функцию time().

Спустя 5 минут, 47 секунд (21.02.2011 - 04:35) inpost написал(а):
date("Y-m-d H:i:s"); сравнение, вычитание. Можно date_format +0, тогда время будет в юниксе, и его сравнивать, а потом переводить.

Спустя 7 часов, 29 минут, 25 секунд (21.02.2011 - 12:04) m4a1fox написал(а):
inpost
Также попробовал. Сначала просто определяю время на сервере. date("H:i:s"). Затем из БД достаю время поста - ind['time']. Далее отнимаю date("H:i:s") - $ind['time']. но что то не понятное выводит. Может подскажете где ошибка.

Спустя 2 минуты, 48 секунд (21.02.2011 - 12:07) Snus написал(а):
А зачем время time() в БД держать? Вполне сойдет и DATETIME, а потом переводим его в секунды strtotime();

Спустя 7 минут, 51 секунда (21.02.2011 - 12:15) m4a1fox написал(а):
Snus
Вот так делаю.
	$diff = strtotime($ind['date']);
echo '<br />';

echo round($diff - time())/3600;

где $ind['date'] - это datetime.

Спустя 2 минуты, 15 секунд (21.02.2011 - 12:17) Snus написал(а):
m4a1fox
Помогло?

Спустя 10 минут, 28 секунд (21.02.2011 - 12:28) m4a1fox написал(а):
Snus
Да. Но только вот такой вывод получился.
	$diff = strtotime($ind['date']);
echo '<br />';
echo time();
echo '<br />';

echo (time() - $diff);

Получаю время в секундах, насколько понимаю. А как мне это перевести в часы - вот так /3600?

Спустя 4 минуты, 57 секунд (21.02.2011 - 12:33) Snus написал(а):
m4a1fox
Тебе же уже написали. Или вариант two не помогает?

Спустя 6 минут, 11 секунд (21.02.2011 - 12:39) m4a1fox написал(а):
Snus
Не... Все заработало. Спасибо за подсказку.

Спустя 3 минуты, 9 секунд (21.02.2011 - 12:42) m4a1fox написал(а):
А вот еще уточнение. Как ограничить. Ну то есть если уже больше часа назад, то не выводим. А если меньше - то показать. Вот код
	$diff = strtotime($ind['date']);
if($dif < 60)
{
echo round((time() - $diff)/60);
}

Спустя 1 минута, 38 секунд (21.02.2011 - 12:44) m4a1fox написал(а):
Извините. Все работает.

Спустя 18 секунд (21.02.2011 - 12:44) Snus написал(а):
m4a1fox
$diff = strtotime($ind['date']);
$min = round( (time() - $diff) / 60 );
if($min > 0) echo $min;

Спустя 16 минут, 6 секунд (21.02.2011 - 13:00) m4a1fox написал(а):
Snus
Хм.... А почему больше нуля? Если мне не больше 60 минут. Как только переваливает за 60, надпись исчезает.

Спустя 1 минута, 20 секунд (21.02.2011 - 13:01) Snus написал(а):
m4a1fox
Как только переваливает за 60 - это уже 0 минут и 1 час biggrin.gif делай проверку дальше на 24 часа и будут тебе сутки.

Спустя 1 минута, 30 секунд (21.02.2011 - 13:03) m4a1fox написал(а):
Так мне и надо только минуты. То есть и не часы и не сутки. А только минуты. А их - 60. Вот скрипт
	$diff = strtotime($ind['date']);
$minus = round((time() - $diff)/60);
if($minus < 60)
{
$echo_minus = '<span id="time_minus">'.$minus.' минут назад</span>';
}
else
{
$echo_minus = '';
}

Спустя 3 минуты, 51 секунда (21.02.2011 - 13:07) Snus написал(а):
m4a1fox
$diff = strtotime($ind['date']);
$minus = round((time() - $diff)/60);
if($minus < 60) echo '<span id="time_minus">'.$minus.' минут назад</span>';

Спустя 8 минут, 47 секунд (21.02.2011 - 13:15) m4a1fox написал(а):
Snus
Да. Так короче получается. Спасибо.

Спустя 11 минут, 26 секунд (21.02.2011 - 13:27) m4a1fox написал(а):
Вопрос не по теме. Как заменить встречающуюся комбинацию символов. А точнее <p>&nbsp;</p> и символ </p>.?

Спустя 1 минута, 29 секунд (21.02.2011 - 13:28) Snus написал(а):
m4a1fox
str_replace('<p> </p>', '#', $value);

Спустя 3 минуты, 23 секунды (21.02.2011 - 13:32) m4a1fox написал(а):
Вопрос снимается. Сделал через 2 переменные. Но наверно же можно сделать как то так [тут символы] - просто где-то видел.

Спустя 1 минута, 37 секунд (21.02.2011 - 13:33) m4a1fox написал(а):
Snus
Тогда заменяется <p>&nbsp;</p>. А символ </p> не заменяется. Сделал по другому -
$desc_1 = str_replace("<p> </p>", '', $d['description']);
$desc = str_replace("</p>", '', $desc_1);

Спустя 6 минут, 38 секунд (21.02.2011 - 13:40) Snus написал(а):
m4a1fox
$what = array('<p> </p>', '</p>');
$text = str_replace($what, '', $text);

Спустя 37 минут, 55 секунд (21.02.2011 - 14:18) m4a1fox написал(а):
Snus
Интересный подход. Все в массив засунуть... Но только скрипт вообще ничего не выводит между тегами(

Спустя 1 минута, 51 секунда (21.02.2011 - 14:20) m4a1fox написал(а):
Snus
Извините. Все выводит. Сам ошибся.

Спустя 14 минут, 41 секунда (21.02.2011 - 14:34) m4a1fox написал(а):
Извините. Но еще не по теме. У меня в БД заносится дата в виде Y:m:d. Как это перевернуть? То есть сделать d:m:Y?

Спустя 25 минут, 58 секунд (21.02.2011 - 15:00) m4a1fox написал(а):
Разобрался
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.