Просмотр темы
Страница 1 из 2: 12
|
Обратный отсчет времени
|
|
yury |
Опубликовано 23.05.2011 16:13
|
![]() Супер Администратор ![]() Сообщений: 1051 Зарегистрирован: 26.07.2010 13:12 |
Не помню был или нет плаг. Как сделать во фьюжене обратный отсчет. Т.е предположим в новости указано начало и конец показа новости. НАдо чтобы выводилось: до конца показа осталось: .... дней |
|
|
dark |
Опубликовано 23.05.2011 17:22
|
![]() Администратор ![]() Группа поддержки ![]() Сообщений: 222 Зарегистрирован: 05.12.2010 22:22 |
К 2012 году готовишься? ![]() А по существу в базе хранится время когда новость отключить в unix формате - news_end. Пишем простенький код: echo "До конца показа осталось: ".ceil(($data['news_end'] - time())/86400)." дней"; Может есть даже какой оператор перевода секунд в дни, но так на вскидку не помню. $data меняем на свое название массива где идет выборка новости. Может еще понадобиться проверка на то что не прошла ли уже эта дата и заполнена ли она. |
|
|
yury |
Опубликовано 23.05.2011 17:33
|
![]() Супер Администратор ![]() Сообщений: 1051 Зарегистрирован: 26.07.2010 13:12 |
да, было бы хорошо. если сделать, что если дата прошла. то писать: срок истек) есть вариант как сделать ?) Изменил(а) yury, 23.05.2011 17:56 |
|
|
jikaka |
Опубликовано 23.05.2011 18:40
|
![]() Супер Администратор ![]() Разработчики ![]() Сообщений: 4843 Зарегистрирован: 26.07.2010 12:10 |
было где-то реализовано панели обратного отсчета до события |
|
|
yury |
Опубликовано 23.05.2011 18:44
|
![]() Супер Администратор ![]() Сообщений: 1051 Зарегистрирован: 26.07.2010 13:12 |
видел только на флеше да вобщем то предложенный dark вариант считает, только осталось вывести, что СОБЫТИЕ НАСТАЛО и после через сутки уже писать СОБЫТИЕ ПРОШЛО |
|
|
dark |
Опубликовано 23.05.2011 19:59
|
![]() Администратор ![]() Группа поддержки ![]() Сообщений: 222 Зарегистрирован: 05.12.2010 22:22 |
Настало - смотри если та формула = 1 (или нулю, там смотри как получился отсчет). Ну и естественно если ($data['news_end'] - time()) < 0 (отрицательна) то событие уже прошло. |
|
|
yury |
Опубликовано 23.05.2011 20:54
|
![]() Супер Администратор ![]() Сообщений: 1051 Зарегистрирован: 26.07.2010 13:12 |
у меня следующий код: echo ''.($data1['visibility'] != 0 ? '"<strong>Статус новости:</strong>"'.$this->visibility[$data1['visibility']].'' : '<br />До конца показа осталось дней: '.ceil(($data1['finish'] - time())/86400).'').''; т.е статус показывается, если статус не присовен. то показывает сколько дней осталось. Соответственно если статус новости не будет присвоен, после окончания срок показа, то выводить. что срок истек. Если же наступает ДЕНЬ ИКС, то показывать. что ДЕНЬ НАСТАЛ! |
|
|
yury |
Опубликовано 25.05.2011 15:51
|
![]() Супер Администратор ![]() Сообщений: 1051 Зарегистрирован: 26.07.2010 13:12 |
или например такую загагулину придумал: подписаться на отдельную новость (после нажатия на кнопку на почту приходит письмо со ссылкой на подписанную новость), и если подходит срок к окончанию ее показа, то отправлять на мыло подписавшимуся сообщение об этом и ссылкой на новость. или же если новость отредактирована, то также слать сообщение о том, что новость отредактирована) у кого какие идеи?) |
|
|
yury |
Опубликовано 26.05.2011 16:24
|
![]() Супер Администратор ![]() Сообщений: 1051 Зарегистрирован: 26.07.2010 13:12 |
dark, подскажешь?) и еще такой вопрос по времени. например как вывести те новости, показ которых заканчивается через 5 дней? какое условие добавляется в запрос? |
|
|
dark |
Опубликовано 26.05.2011 16:41
|
![]() Администратор ![]() Группа поддержки ![]() Сообщений: 222 Зарегистрирован: 05.12.2010 22:22 |
yury написал: например как вывести те новости, показ которых заканчивается через 5 дней? какое условие добавляется в запрос? AND news_end<=".(time()-432000." Время в базе хранится в секундах. что бы рассчитать 5 дней нужно рассчитать сколько секунд в 5 днях. 60 секунд * на 60 минут * 24 часа * 5 дней. Как раз получается 432000. Насчет же писем это уже мудрено получается. Нужно посмотреть как это реализовано с подпиской на темы форума и реализовать что то наподобии. |
|
|
yury |
Опубликовано 26.05.2011 16:52
|
![]() Супер Администратор ![]() Сообщений: 1051 Зарегистрирован: 26.07.2010 13:12 |
а, да, действтиельно же есть подписка на темы форума. тоже посмотрю, если догоню как реализовать) спасибо, выручаешь! ![]() |
|
|
yury |
Опубликовано 26.05.2011 20:51
|
![]() Супер Администратор ![]() Сообщений: 1051 Зарегистрирован: 26.07.2010 13:12 |
внесу небольшую точность в синтаксис, если вдруг у кого подобная зада стоит тоже O:-) AND (news_end<=".(time()-432000).") Изменил(а) yury, 26.05.2011 21:55 |
|
|
dark |
Опубликовано 26.05.2011 21:02
|
![]() Администратор ![]() Группа поддержки ![]() Сообщений: 222 Зарегистрирован: 05.12.2010 22:22 |
Скобка в конце ненужна. AND news_end<=".(time()-432000)." |
|
|
yury |
Опубликовано 26.05.2011 21:54
|
![]() Супер Администратор ![]() Сообщений: 1051 Зарегистрирован: 26.07.2010 13:12 |
у меня именно с приведенным синтаксисом работает почему то. |
|
|
dark |
Опубликовано 26.05.2011 23:12
|
![]() Администратор ![]() Группа поддержки ![]() Сообщений: 222 Зарегистрирован: 05.12.2010 22:22 |
условие наверное идет последним и последняя скобка это общая от всего запроса |
|
|
yury |
Опубликовано 27.05.2011 00:12
|
![]() Супер Администратор ![]() Сообщений: 1051 Зарегистрирован: 26.07.2010 13:12 |
в форуме вот это как я понял отчасти отвечает за подписку:
|
|
|
yury |
Опубликовано 27.05.2011 00:14
|
![]() Супер Администратор ![]() Сообщений: 1051 Зарегистрирован: 26.07.2010 13:12 |
т.е как я понимаю, если произошел апдейт таблицы с новостью/темой, то отправляет уведомление на почту. ну и конечно кнопка отписаться |
|
|
dark |
Опубликовано 27.05.2011 09:08
|
![]() Администратор ![]() Группа поддержки ![]() Сообщений: 222 Зарегистрирован: 05.12.2010 22:22 |
Ну да, без дополнительной таблицы никак не получится. Где то же нужно хранить данные кто на что подписался. |
|
|
yury |
Опубликовано 27.05.2011 11:34
|
![]() Супер Администратор ![]() Сообщений: 1051 Зарегистрирован: 26.07.2010 13:12 |
dark написал: Настало - смотри если та формула = 1 (или нулю, там смотри как получился отсчет). Ну и естественно если ($data['news_end'] - time()) < 0 (отрицательна) то событие уже прошло. вот только же не совсем верно, когда =0, т.к это получается когда числа совпадают один в один. а если до конца суток, то получается надо выбрать диапозон |
|
|
dark |
Опубликовано 27.05.2011 12:29
|
![]() Администратор ![]() Группа поддержки ![]() Сообщений: 222 Зарегистрирован: 05.12.2010 22:22 |
Я имел ввиду что расчет уже переведен в дни. Когда равно 0 дней разницы, то выводить событие настало. А вот какое тут число точно 1 или 0, это уже нужно смотреть по самому расчету, на вскидку сложно судить. |
|
Поделиться этой темой | |
Социальные закладки: |
![]() ![]() ![]() ![]() ![]() ![]() |
URL: | |
BBcode: | |
HTML: |
Страница 1 из 2: 12
Перейти на форум: |