-
Вебмастеру
(
http://forum.oszone.net/forumdisplay.php?f=22)
Как сделать смену оформления сайта в зависимости от времени суток в php
Как сделать смену оформления сайта в зависимости от времени суток в php
для HTML нашол а для PHP нет
HTML код:
давай попробуем это изобразить...
возьмем стандартный скрипт приветствия от времени суток:
<script language="JavaScript">
<!--
var time = new Date();
var hour = time.getHours();
if(hour > 22 & hour <= 6) document.write("Доброй ночи!");
if(hour > 6 & hour <= 11) document.write("Доброе утро!");
if(hour > 11 & hour <= 18) document.write("Добрый день!");
if(hour > 18 & hour <= 22) document.write("Добрый вечер!");
// -->
</script>
изменяем его под наши нужды:
<script language="JavaScript">
<!--
var time = new Date();
var hour = time.getHours();
if(hour > 22 & hour <= 6) parent.setstyle(style1.css); //ночь
if(hour > 6 & hour <= 11) parent.setstyle(style2.css); //утро
if(hour > 11 & hour <= 18) parent.setstyle(style3.css); //день
if(hour > 18 & hour <= 22) parent.setstyle(style4.css); //вечер
// -->
</script>
в принципе скрипт готов... его нужно поместить в радел body любого фрейма...
при входе в чат пользователь получит тот стиль, что соответствует времени суток...
но этот стиль останется таким все время нахождения чатланина в чате,
если только он не поменяет стиль вручную...
можно чуть изменить скрипт, чтобы автоматически происходила смена стиля при постоянном нахождении чатланина в чате:
<script language="JavaScript">
<!--
function styletime() {
var time = new Date();
var hour = time.getHours();
if(hour > 22 & hour <= 6) { parent.setstyle('style1.css'); }
if(hour > 6 & hour <= 11) { parent.setstyle('style2.css'); }
if(hour > 11 & hour <= 16) { parent.setstyle('style3.css'); }
if(hour > 16 & hour <= 22) { parent.setstyle('style4.css'); }
setTimeout("styletime()",5*60*1000) }
// -->
</script>
проверка осуществляется раз в пять минут, думаю, что этого достаточно...
ну, и нужно не забыть про запуск самой функции:
<script>styletime();</script>
и есть ещо один способ
HTML код:
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function getCSS()
{
datetoday = new Date();
timenow=datetoday.getTime();
datetoday.setTime(timenow);
thehour = datetoday.getHours();
if (thehour > 20)
display = "tree_twilight.css";
else if (thehour > 17)
display = "tree_sunset.css";
else if (thehour > 14)
display = "tree_afternoon.css";
else if (thehour > 11)
display = "tree_noon.css";
else if (thehour > 7)
display = "tree_morning.css";
else if (thehour > 4)
display = "tree_sunrise.css";
else if (thehour > 1)
display = "tree_twilight.css";
else
display = "tree_sunset.css";
var css = '<'; css+='link rel="stylesheet" href=' + display + ' \/'; css+='>';
document.write(css);
// End -->
}
</script>
<script language="javascript">getCSS();</script>
Устанавливаем один из стилей как дефолтный,
на случай, если у пользователя отключен JS.
<noscript>
<link rel="stylesheet" href="tree_sunset.css" type="text/css">
</noscript>
Но ето всё не то
мне надо чтобы 4 раза в сутки было так
PHP код:
<body id="dusk" class="f-default style<?=$num_sait['stail'];?>">
<body id="night" class="f-default style<?=$num_sait['stail'];?>">
<body id="day" class="f-default style<?=$num_sait['stail'];?>">
<body id="dawn" class="f-default style<?=$num_sait['stail'];?>">
тоесть "dusk" , "night" , "day" , "dawn" менялись местами по времени
имею это и немного знаю PHP
PHP код:
// Это скрипт JS
window.addEvent('load', function() {
if (document.body.id == '') {
if (tempus != false) {
timeofday = tempus;
document.body.id=tempus;
} else {
datetoday = new Date();
timenow=datetoday.getTime();
datetoday.setTime(timenow);
thehour = datetoday.getHours();
if (thehour >= 20)
timeofday = "night";
else if (thehour >= 17)
timeofday = "dusk";
else if (thehour >= 9)
timeofday = "day";
else if (thehour >= 5)
timeofday = "dawn";
else
timeofday = "night";
document.body.id=timeofday;
}
Cookie.set('dim-tempus', timeofday, {duration: 1/24,path: "/"});
}
});
|
Часы можно получить вот так а дальше сранивайте и делайте оформление :)
|
Цитата:
Цитата binders
// Это скрипт JS
window.addEvent('load', function() { »
|
это только с js-библиотекой будет работать (c mootools точно, и еще от версии зависит)...
на сервере время клиента неизвестно, можно дополнительно искать страну по IP или как у вас кукис ставить и проверять... но в принципе лучше стиль у клиента подгружать сразу (как в первом листинге)...
|
PHP код:
//надо было
<body id="dusk" class="f-default style<?=$num_sait['stail'];?>">
<body id="night" class="f-default style<?=$num_sait['stail'];?>">
<body id="day" class="f-default style<?=$num_sait['stail'];?>">
<body id="dawn" class="f-default style<?=$num_sait['stail'];?>">
//сделал
<body id="<?php
$h=date('H');
if ($h>=1 && $h<=7)
{echo "night";}
elseif ($h>=8 && $h<=11)
{echo "dawn";}
elseif ($h>=12 && $h<=20)
{echo "day";}
elseif ($h>=21 && $h<=24)
{echo "dusk";}
?>" class="f-default style<?=$num_sait['stail'];?>">
//итог стиль сайта меняется 4 раза за сутки
примерно как сдесь
|
Цитата:
Цитата binders
стиль сайта меняется 4 раза за сутки »
|
по времени сервера...
|
по идее должно менятся по времени железа юзера
|
Оказалось я был жутко не прав в денвере всё работало так как время сервера и юзера тоесть меня было одно и тоже
но как только залил всё на сервер перестало работать оказалось PHP обробатывает по серверному времени
помогите сделать чтоб стили менялись по времени юзеров
|
второй листинг должен сработать...
|
Здрасте не прошло и полу года как я опять заинтересовался этим вопросом
Вопрос
что надо прописать в php
чтоб "dusk" , "night" , "day" , "dawn" менялись местами в зависимости от времени суток
PHP код:
<body id="dusk" class="f-default style<?=$num_sait['stail'];?>">
<body id="night" class="f-default style<?=$num_sait['stail'];?>">
<body id="day" class="f-default style<?=$num_sait['stail'];?>">
<body id="dawn" class="f-default style<?=$num_sait['stail'];?>">
тоесть из этого скрипта
PHP код:
// Это скрипт JS
window.addEvent('load', function() {
if (document.body.id == '') {
if (tempus != false) {
timeofday = tempus;
document.body.id=tempus;
} else {
datetoday = new Date();
timenow=datetoday.getTime();
datetoday.setTime(timenow);
thehour = datetoday.getHours();
if (thehour >= 20)
timeofday = "night";
else if (thehour >= 17)
timeofday = "dusk";
else if (thehour >= 9)
timeofday = "day";
else if (thehour >= 5)
timeofday = "dawn";
else
timeofday = "night";
document.body.id=timeofday;
}
Cookie.set('dim-tempus', timeofday, {duration: 1/24,path: "/"});
}
});
сктипт выдран из дизайна на joomle
|
всё решил проще некуда
но можно как нибудь попроще время прописывать ?
чтоб из админки на пхп попроще можно было время сменить ?
HTML код:
<script language=JavaScript>
var h=(new Date()).getHours();
if (h > 23 || h < 7) document.write("<body id='night' class='f-default'>");
if (h > 6 && h < 12) document.write("<body id='dawn' class='f-default'>");
if (h > 11 && h < 19) document.write("<body id='day' class='f-default'>");
if (h > 18 && h < 24) document. write("<body id='dusk' class='f-default'>");
</script>
|
Время: 12:55.
© OSzone.net 2001-