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

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

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

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

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

Slavchik_ru

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
подскажите скриптик который бы менял background - разные обои у станички..в зависимости от времени суток  
 
<body background="img/bg.gif">

Всего записей: 34 | Зарегистр. 20-09-2010 | Отправлено: 16:59 20-09-2010 | Исправлено: Cheery, 09:09 09-03-2011
Cheery



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

Код:
<script language="JavaScript">
 
day=new Date()     //..get the date
 
x=day.getHours()    //..get the hour
 
if(x>=0 && x<4) {
 
   document.write('<style type="text/css">body{background: white url(1st.jpg); color: black}"></style>')
 
} else
 
if(x>=4 && x<12) {
 
   document.write('<style type="text/css">body{background: white url(2nd.jpg); color: black}</style>')
 
} else
 
if(x>=12 && x<18) {
 
   document.write('<style type="text/css">body{background: white url(3rd.jpg); color: black}</style>')
 
} else
 
if (x>=18 && x<24) {
 
   document.write('<style type="text/css">body{background: white url(4th.jpg); color: black}</style>')
 
}
 
</script>  

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

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:57 20-09-2010
Slavchik_ru

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

Всего записей: 34 | Зарегистр. 20-09-2010 | Отправлено: 21:17 26-11-2010
tula39

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

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



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

Цитата:
А как сделать вывод по точному времени, например 15 часов 30 минут и не картинку  

по полной аналогии.. добавить минуты

Цитата:
и не картинку а текст в определенном месте.

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

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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
если открыта страница и прошло указанное время - изменился текст. Если можно приведите пожалуйста полный пример скрипта, а то я в этом не очень силен. С минутами и примером текста который должен появиться. Спасибо.

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



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tula39
цель то этого можете сказать? дело в том, что js привязан к локальному времени и эта система очень ненадежна, так как пользователь может изменить свое время на произвольное

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:09 28-02-2011
mrlika

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
 
Можно в JS передавать и серверное время. А в самом JS использовать таймер, и даже сихронизацию с серверным временем.
 
Таким образом можно выполнять действия именно в 15 часов 30 минут по времени сервера.

Всего записей: 50 | Зарегистр. 28-11-2008 | Отправлено: 14:36 01-03-2011
Cheery



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

Цитата:
Можно в JS передавать и серверное время.  

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

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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
затея очень проста, идет трансляция видео на сервере ЯТВ по приблизительному времени, мне нужно  заранее в скрипт забить время трансляции определенных фильмов, и чтобы они появлялись ну хотябы по времени сервера или по Москве... вот и все, т.е. в определенное время высвечивалась определенная надпись которая изначально заложена в скрипте...

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



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tula39
тогда лучше всего определять разницу в секундах на сервере, используя php, к примеру.
Например в той части, что генерит javascript кусок страницы сделать
<div id='text'></div>
<script>
var diff=<php
$final_time=strtotime('2011-03-03 00:00:00');
$now=date();
echo $final_time-$now;?>;
setTimeout(my_func,diff);
 
function my_func()
{
document.getElementById('text').innerHTML='тут текст, который должен появиться';
}
</script>
 
php скрипт считает разницу во времени (нужно проверить насчет различных временных зон и добавить зону, если что)
вставляет разницу в javascript, который запускает таймер и как только эта разница проходит - отображает текст в divе


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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вставляю этот код в страницу, и после прошествия времени ничего не появляется,нельзя ли подробно, для "дураков". И потом мне не нужна конкретная дата, только время, и пусть время будет московское... Пожалуйста приведите пример хотя бы с двумя записями. Например в 15.30 и до 17,30 отображается текст 1, с17.31 до 18.45 отображается текст 2

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



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tula39
да хотя бы так.. это по быстрому и на пальцах

Код:
<html>
<body>
<div id='message'></div>
<?php
    $events=array(
    array('12:52:00','Сообщение No1'),
    array('12:53:00','Сообщение No2'),
    array('12:54:00','Сообщение No3'),
    );
?>    
<script>  
<?php  
foreach($events as $e)
{  
$final_time=strtotime($e[0]);  
$now=strtotime(date("H:i:s"));
if (($final_time-$now)>0) echo "setTimeout(\"my_func('".str_replace("\n","/\n",addslashes($e[1]))."')\",".(($final_time-$now)*1000).");\n";
}
?>  
function my_func(txt)  
{  
document.getElementById('message').innerHTML=txt;  
}  
</script>  
</body>
</html>

привязка, конечно же, к времени на сервере

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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
После того как я публикую страницу указанную вами на на сервер он выдает вот это:
<html>  
<body>  
<div id='message'></div>  
     
<script>  
   
function my_func(txt)  
{  
document.getElementById('message').innerHTML=txt;  
}  
</script>  
</body>  
</html>
 
 и все. Что это? И куда девается остальное?

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



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

Цитата:
и все. Что это? И куда девается остальное?

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

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

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

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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
<html>  
<body>  
<div id='message'></div>  
<?php  
    $events=array(  
    array('22:10:00','Сообщение No1'),  
    array('22:11:00','Сообщение No2'),  
    array('22:12:00','Сообщение No3'),  
    array('22:14:00','Сообщение No4'),
    array('22:15:00','Сообщение No5'),
    array('22:20:00','Сообщение No6'),
    array('23:20:00','Сообщение No7'),
);  
?>      
<script>  
<?php  
foreach($events as $e)  
{  
$final_time=strtotime($e[0]);  
$now=strtotime(date("H:i:s"));  
$diff=($final_time-$now)*1000;  
if ($diff<0) $diff+=3600*24*1000;  
echo "setTimeout(\"my_func('".str_replace("\n","\\\n",addslashes($e[1]))."')\",".$diff.");\n";  
}  
?>  
function my_func(txt)  
{  
document.getElementById('message').innerHTML=txt;  
}  
</script>  
</body>  
</html>
 
вот так публикую на сервер то ничего не отображается, если поставить перед 1000 знак минус то появляется последнее сообщение независимо от времени. Подскажите а нельзя ли написать скрипт примерно такой же как скрипт приветствия по времени, только с точными сообщения в данное время.
 
Добавлено:
точнее сообщения по точному времени

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



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

Цитата:
точнее сообщения по точному времени

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

Цитата:
вот так публикую на сервер то ничего не отображается

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

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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
да еще мне не нужно выражение типа 12.15.00, мне необходимо 12.15

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



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

Цитата:
да еще мне не нужно выражение типа 12.15.00, мне необходимо 12.15

ну пишите без нулей.. делов то - strtotime может понять.. а не поймет - добавить нули как строковое значение перед преобразованием
$final_time=strtotime($e[0].":00");  
 
вот вам без нулей и по московскому часовому поясу

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


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

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

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

Всего записей: 18 | Зарегистр. 28-07-2006 | Отправлено: 23:01 03-03-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