Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » разные обои (background) и не только для разных частей суток

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tula39

Цитата:
и желательно появление второго сообщения без перезагрузки страницы

а, по вашему, сейчас страницы перегружаете?  
вообще - сразу нужно обо всем говорить, так как надоело отвлекаться по мелочам.
 
код на пальцах, не говорю, что лучшая реализация

Код:
<html>  
<body>  
<div id='message'></div>  
<?php  
    $events=array(  
    array('23:21','Сообщение No1'),  
    array('23:25','Сообщение No2'),  
    array('23:26','Сообщение No3'),  
);  
?>      
<script>    
<?php  
$previous=array('diff'=>0,'index'=>-1);  
date_default_timezone_set('Europe/Moscow');  
foreach($events as $i=>$e)  
{    
$final_time=strtotime($e[0].":00");    
$now=strtotime(date("H:i:s"));  
$diff=($final_time-$now)*1000;  
if ($diff<0&&($previous['diff']>abs($diff)||$previous['index']==-1)) {$previous['diff']=abs($diff);$previous['index']=$i;}
if ($diff<0) $diff+=3600*24*1000;  
echo "setTimeout(\"my_func('".str_replace("\n","\\\n",addslashes($e[1]))."')\",".$diff.");\n";  
}
if ($previous['index']!=-1) echo "my_func('".str_replace("\n","\\\n",addslashes($events[$previous['index']][1]))."');";
?>    
function my_func(txt)    
{    
document.getElementById('message').innerHTML=txt;    
}    
</script>    
</body>  
</html>

 
ps: все, изучайте язык.. играйтесь с этим кодом.  
да, сработает только раз в сутки, как и говорил. вряд ли кто то будет держать страницу открытой сутки
можно сделать и иначе, чтобы срабатывало даже если открыта страница сутки:

Код:
function my_func(txt)    
{    
document.getElementById('message').innerHTML=txt;
setTimeout(function(){my_func(txt);},3600*24*1000);   //лень тут возиться с кавычками
}


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:25 03-03-2011 | Исправлено: Cheery, 23:29 03-03-2011
tula39

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо.

Всего записей: 18 | Зарегистр. 28-07-2006 | Отправлено: 00:20 04-03-2011
tula39

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
...
 
Добавлено:
....

Всего записей: 18 | Зарегистр. 28-07-2006 | Отправлено: 13:47 04-03-2011 | Исправлено: tula39, 00:36 08-03-2011
tula39

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Извиняюсь, не могу разобраться почему после 00 часов не показывает сообщения вот код:
 
<html>    
<body>    
<div id='message'></div>    
<?php    
    $events=array(    
    array('06:00:00','Сейчас в эфире: в 06.00 Молитва <br>&nbsp;&nbsp;Далее в эфире: в 06.01 х/ф Тарас Бульба реж. Владимир Бортко 2009 год (исторический)</b>'),
    array('06:01:25','Сейчас в эфире: в 06.01 х/ф Тарас Бульба реж. Владимир Бортко 2009 год (исторический) <br>&nbsp;&nbsp;Далее в эфире: в 08.09 м/ф Ну погоди! 1-5 выпуски</b>'),
    array('08:09:37','Сейчас в эфире: в 08.09 м/ф Ну погоди! 1-5 выпуски <br>&nbsp;&nbsp;Далее в эфире: в 08.56 х/ф "Царь", реж. Павел Лунгин 2009 год (исторический)</b>'),
    array('08:56:36','Сейчас в эфире: в 08.56 х/ф "Царь", реж. Павел Лунгин 2009 год (исторический) <br>&nbsp;&nbsp;Далее в эфире: в 11.24 х/ф Санктум, реж.Алистер Грирсон 2011 год (трилер)</b>'),
    array('11:24:10','Сейчас в эфире: в 11.24 х/ф "Санктум", реж.Алистер Грирсон 2011 год (трилер) <br>&nbsp;&nbsp;Далее в эфире: в 13.04 м/ф Ну погоди! 6-10 выпуски</b>'),
    array('13:04:10','Сейчас в эфире: в 13.04 м/ф Ну погоди! 6-10 выпуски <br>&nbsp;&nbsp;Далее в эфире: в 13.51 х/ф Штамм "Андромеда", реж. Майкл Соломон 2008 год (фантастика)</b>'),
    array('13:51:27','Сейчас в эфире: в 13.51 х/ф Штамм "Андромеда", реж. Майкл Соломон 2008 год (фантастика) <br>&nbsp;&nbsp;Далее в эфире: в 16.36 х/ф "Константин", реж. Френсис Лоуренс  2005 год (фантастика,мистика)</b>'),
    array('16:36:28','Сейчас в эфире: в 16.36 х/ф "Константин", реж. Френсис Лоуренс  2005 год (фантастика,мистика) <br>&nbsp;&nbsp;Далее в эфире: в 18.32 х/ф "Заза", реж. Андрей Силкин 2009 год (мелодрама)</b>'),
    array('18:31:56','Сейчас в эфире: в 18.30 х/ф "Заза", реж. Андрей Силкин 2009 год (мелодрама) <br>&nbsp;&nbsp;Далее в эфире: в 20.00 х/ф "Люди Икс", реж. Брайан Сингер 2000 год (фантастика)</b>'),
    array('20:01:17','Сейчас в эфире: в 20.00 х/ф "Люди Икс", реж. Брайан Сингер 2000 год (фантастика) <br>&nbsp;&nbsp;Далее в эфире: в 22.05 х/ф "Люди Икс-2", реж. Брайан Сингер 2003 год (фантастика)</b>'),
    array('22:05:31','Сейчас в эфире: в 22.05 х/ф "Люди Икс-2", реж. Брайан Сингер 2003 год (фантастика) <br>&nbsp;&nbsp;Далее в эфире: в 00.40 х/ф "Люди Икс: Последняя битва", реж. Бретт Рэтнер 2006 год (фантастика)</b>'),
    array('00:39:33','Сейчас в эфире: в 00.40 х/ф "Люди Икс: Последняя битва", реж. Бретт Рэтнер 2006 год (фантастика) <br>&nbsp;&nbsp;Далее в эфире: в 02.18  х/ф "Настоятель", реж. Армен Назикян 2010 год (боевик)</b>'),
    array('02:17:50','Сейчас в эфире: в 02.17 х/ф "Настоятель", реж. Армен Назикян 2010 год (боевик) <br>&nbsp;&nbsp;Далее в эфире: в 03.48 м/ф Ну погоди! 11-15 выпуски</b>'),
    array('03:48:01','Сейчас в эфире: в 03.48 м/ф Ну погоди! 11-15 выпуски <br>&nbsp;&nbsp;Далее в эфире: в 04.35 м/ф Ну погоди! 16-20 выпуски</b>'),
    array('04:35:28','Сейчас в эфире: в 04.35 м/ф Ну погоди! 16-20 выпуски <br>&nbsp;&nbsp;Далее в эфире: в 05.27 Музыкальные видеоклипы</b>'),
    array('05:27:36','Сейчас в эфире: в 05.27 Музыкальные видеоклипы <br>&nbsp;&nbsp;Далее в эфире: в 05.40 Технический перерыв</b>'),
    array('05:40:28','Сейчас в эфире: в 05.40 Технический перерыв <br>&nbsp;&nbsp;Далее в эфире: в 06.00 Молитва</b>'),      
);    
?>        
<script>    
<?php  
$previous=array('diff'=>0,'index'=>-1);  
date_default_timezone_set('Europe/Moscow');    
foreach($events as $i=>$e)    
{    
$final_time=strtotime($e[0]);    
$now=strtotime(date("H:i:s"));    
$diff=($final_time-$now)*1000;    
if ($diff<0&&($previous['diff']>abs($diff)||$previous['index']==-1)) {$previous['diff']=abs($diff);$previous['index']=$i;}  
if ($diff<0) $diff+=3600*24*1000;  
echo "setTimeout(\"my_func('".str_replace("\n","\\\n",addslashes($e[1]))."')\",".$diff.");\n";    
}  
if ($previous['index']!=-1) echo "my_func('".str_replace("\n","\\\n",addslashes($events[$previous['index']][1]))."');";  
?>    
function my_func(txt)    
{    
document.getElementById('message').innerHTML=txt;    
}    
</script>    
</body>    
</html>
 
 
 
РАБОТАЕТ ТОЛЬКО ДО 24, А КАК СДЕЛАТЬ ЧТОБЫ ОН РАБОТАЛ ВСЕ СУТКИ ПО КРУГУ И ВСЕ ОТОБРАРАЖАЛ...
 
 
ВСЕ КАЖЕТЬСЯ ПОЛУЧИЛОСЬ ПОСТАВИЛ ВОТ В ЭТОЙ СТРОЧКЕ ВОТ КАК
 
if ($diff<0) $diff+=7200*48*1000;
 
И ВСЕ ПОЯВИЛОСЬ.

Всего записей: 18 | Зарегистр. 28-07-2006 | Отправлено: 00:32 08-03-2011 | Исправлено: tula39, 00:43 08-03-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tula39

Цитата:
РАБОТАЕТ ТОЛЬКО ДО 24, А КАК СДЕЛАТЬ ЧТОБЫ ОН РАБОТАЛ ВСЕ СУТКИ ПО КРУГУ И ВСЕ ОТОБРАРАЖАЛ...  

1) давайте без caps lock?
2) не нужно удалять старые сообщения и создавать новые - добавляйте в те, где уже писали, если на них не было ответа. иначе может расцениваться как подъем темы
3) я же написал уже как сделать, чтобы работало каждые сутки

Цитата:
setTimeout(function(){my_func(txt);},3600*24*1000);  

запустит событие через сутки снова.

Цитата:
if ($diff<0) $diff+=7200*48*1000;  

добавляет 48 часов, а не 24

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 03:08 08-03-2011
tula39

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
После 00 часов ничего не отображается, даже при добавлении вот этой строки  
setTimeout(function(){my_func(txt);},3600*24*1000);   ВОТ КОД ПОЛНОСТЬЮ:
 
Подробнее...
 
 
до 23.59 нормально а дальше пропадает до 01.00

Всего записей: 18 | Зарегистр. 28-07-2006 | Отправлено: 00:23 09-03-2011 | Исправлено: Cheery, 00:50 09-03-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
до 23.59 нормально а дальше пропадает до 01.00

в смысле? объясните нормально что происходит не так
и перестаньте постить один и тот же большой кусок кода

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:59 09-03-2011
tula39

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
после 23.59 пропадает все и вот сейчас уже час ничего не появляется... хотя должно появиться  сейчас в 23.52 и далее 1.30

Всего записей: 18 | Зарегистр. 28-07-2006 | Отправлено: 01:05 09-03-2011 | Исправлено: tula39, 01:08 09-03-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tula39

Цитата:
после 23.59 пропадает все и вот сейчас уже час ничего не появляется...

что значит "все"? имеете в виду то, что должно отображаться предыдущее при загрузке?
я не совсем понимаю смысл выражения "пропадает все"

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:09 09-03-2011 | Исправлено: Cheery, 01:14 09-03-2011
tula39

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну да запись  которая идет с23.52 до 01.30

Всего записей: 18 | Зарегистр. 28-07-2006 | Отправлено: 01:16 09-03-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tula39

Цитата:
ну да запись  которая идет с23.52 до 01.30

ну так об этом внятно и нужно говорить. конечно пропадает, потому что при смене суток секунды опять от 0 идут.. через некоторое время исправлю код - сейчас немного занят

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:18 09-03-2011
tula39

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
спасибо буду ждать...
 
Добавлено:
спасибо буду ждать...

Всего записей: 18 | Зарегистр. 28-07-2006 | Отправлено: 01:19 09-03-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tula39
пробуйте такую замену - сильно мудрить не хотелось (я не обещаю, что она работает правильно - сейчас голова совсем другим забита)

Код:
if ($diff<0&&($previous['diff']>abs($diff)||$previous['index']==-1)) {$previous['diff']=abs($diff);$previous['index']=$i;}
if ($diff>0&&($previous['diff']>($now+24*3600-abs($diff))||$previous['index']==-1)) {$previous['diff']=$now+24*3600-abs($diff);$previous['index']=$i;}  

 
да, и раз это ТВ расписание (которое меняется в следующие сутки), то это

Цитата:
setTimeout(function(){my_func(txt);},3600*24*1000);  

действительно не нужно.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:40 09-03-2011 | Исправлено: Cheery, 01:40 09-03-2011
tula39

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
if ($diff>0&&($previous['diff']>($now+24*3600-abs($diff))||$previous['index']==-1)) {$previous['diff']=$now+24*3600-abs($diff);$previous['index']=$i;}  

 
когда ее вставляю то показывает промежуток расписания вместо 8.00 на 05.50
 
 
Добавлено:
а может вот так, не стоит заморачиваться после вот этого:
array('23:52:06','Сейчас в эфире: 23.52 х/ф "Люди Икс:....Далее в эфире: в 1.30 х/ф Заза
 
добавить
array('00:00:01','Сейчас в эфире: 23.52 х/ф "Люди Икс:....Далее в эфире: в 1.30 х/ф Заза
 
и она пойдет считать заново - перерыв в отображении 1 сотая почти незаметно

Всего записей: 18 | Зарегистр. 28-07-2006 | Отправлено: 08:34 09-03-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tula39

Цитата:
и она пойдет считать заново - перерыв в отображении 1 сотая почти незаметно

не одна сотая, а одна секунда.
ну сделайте либо подумайте как модифицировать код.
в принципе я не вижу нарушения в логике, чтобы что то не так срабатывало.  
просто мысли сейчас совсем не об этом..

Цитата:
когда ее вставляю то показывает промежуток расписания вместо 8.00 на 05.50

этот код не заменяет предыдущий, а дополняет.  
 
ps: и укажите точно локальное время, когда возникает проблема - тестирую подставляя разное время и вроде все выглядит правильно

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 09:07 09-03-2011 | Исправлено: Cheery, 09:14 09-03-2011
Memph1z

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго дня, товарищи.
 
Интересные штуки тут почитал, но не нашел ответ на свой вопрос.
на сайте есть тумблер, по нажатию на него должен менятся css со светлого на темный css. не подскажете ли, как реализовать такое переключение cssок?
 
заранее благодарен

Всего записей: 1 | Зарегистр. 07-06-2011 | Отправлено: 15:00 07-06-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Интернет » Web-программирование » разные обои (background) и не только для разных частей суток


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru