"ВОКРУГ САЙТА" www.vokrug-saita.ru

как создать сайт самостоятельно

Главная Рассылка Секрет Автор сайта

Уроки PHP для начинающих


Как создать сайт на PHP - легко, быстро, ПРОФЕССИОНАЛЬНО?

Меняем фон страницы в зависимости от времени суток

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

На индексной странице у нас есть заголовок-ссылка "Часы на странице сайта". Можно этот заголовок дополнить таким образом: "Часы на странице сайта и изменение фона в зависимости от времени суток". Ссылка указывает на файл clock.php, он снова нам сейчас понадобится - будем просто его дорабатывать.

Запускаем Денвер, открываем clock.php в браузере - на странице отображаются часы, показывающие текущее время.

Фон страницы белый по умолчанию. Сделаем так, чтобы фон менялся от времени суток.

Открываем clock.php в своём редакторе.

Код сейчас такой:

<?php
//определяем текущее время
$new = time (); //определяем текущее время с помощью функции time ()

$H = date ('H', $new); //определяем часы
$i = date ('i', $new); //определяем минуты

//определяемся со словом "час/часа/часов"
if (($H == 1) || ($H == 21)) //если сейчас один час или двадцать один час, то
{
$hs = "час"; //после количества часов будет слово "час"
}
else if (($H >= 2 && $H <= 4) || ($H >= 22)) //если же время от 2 до 4 часов, то
{
$hs = "часа"; //слово будет "часа"
}
else
{
$hs = "часов"; //во всех прочих случаях будет выводиться слово "часов"
}

// определяем первую цифру количества минут
if ($i < 10)
{
$i0 = $i;
}
else
{
$i0 = $i - floor ($i/10) * 10; //функция floor округляет дроби в сторону уменьшения
}

// определяемся со словом "минута"
if (($i >= 10) && ($i <= 20)) //если текущая минута в диапазоне от 10 до 20 минут, то
{
$is = "минут"; //выводится "минут"
}
else if ($i0 == 1) //если одна минута, например, пять часов одна минута, то
{
$is = "минута"; //выводится "минута"
}
else if (($i0 >= 2) && ($i0 <= 4)) //если от 2 до 4 минут, то
{
$is = "минуты"; //выводится "минуты"
}
else
{
$is = "минут"; //во всех прочих случаях выводится слово "минут"
}

<html>
<head>
<title> Часы на странице сайта </title>
</head>
<body>

<table width="80%" border="1" align="center" bordercolor="#0000FF">
<tr>
<td height="300" valign="top">

<h1> Часы на странице сайта.</h1>
<div align="center" style="border:#000000 solid 1px; width:300px; background-color:#FFFFFF">

<?php
echo "$H $hs : $i $is"; // вывели время на страницу
?>
</p>

</td>
</tr>
</table>

<p align="center"><a href="index.html">На главную</a></p>

</body>
</html>

Дописываем следующее:

<?php
//определяем текущее время
$new = time (); //определяем текущее время с помощью функции time ()

$H = date ('H', $new); //определяем часы
$i = date ('i', $new); //определяем минуты

//определяемся со словом "час/часа/часов"
if (($H == 1) || ($H == 21)) //если сейчас один час или двадцать один час, то
{
$hs = "час"; //после количества часов будет слово "час"
}
else if (($H >= 2 && $H <= 4) || ($H >= 22)) //если же время от 2 до 4 часов, то
{
$hs = "часа"; //слово будет "часа"
}
else
{
$hs = "часов"; //во всех прочих случаях будет выводиться слово "часов"
}

// определяем первую цифру количества минут
if ($i < 10)
{
$i0 = $i;
}
else
{
$i0 = $i - floor ($i/10) * 10; //функция floor округляет дроби в сторону уменьшения
}

// определяемся со словом "минута"
if (($i >= 10) && ($i <= 20)) //если текущая минута в диапазоне от 10 до 20 минут, то
{
$is = "минут"; //выводится "минут"
}
else if ($i0 == 1) //если одна минута, например, пять часов одна минута, то
{
$is = "минута"; //выводится "минута"
}
else if (($i0 >= 2) && ($i0 <= 4)) //если от 2 до 4 минут, то
{
$is = "минуты"; //выводится "минуты"
}
else
{
$is = "минут"; //во всех прочих случаях выводится слово "минут"
}

// Реализуем изменение цвета фона в зависимости от времени суток
// Вычисляем коэффициент освещённости
// коэффициент должен меняться от 1 - в полдень до 0 - в полночь
if ($H <= 12)
{
$k = $H/12; // коэффициент освещённости равен текущему часу делённому на 12: 1, 11/12, 10/12 ... 0
}
else
{
$k = (24 - $H)/12; // поскольку коэффициент освещённости не может быть больше 1
}
// определяем составляющую цвета

$c = dechex($k * 0xF);
// в строке выше запись 0xF в шеснадцатиричной системе это то же самое, что число 15 - в десятеричной системе. Причём тут 15, задаёте вы вопрос? Белый цвет, как вы, наверняка, помните записывается в шестнадцатиричной системе как #FFFFFF. (Только вы, скорей всего, до сих пор не знали, что это в шестнадцатиричной системе.) Так вот, это самое обозначение белого цвета соответствует числу 15.
// Мы умножаем коэффициент освещённости на обозначение белого цвета, отчего должны получить какой-то оттенок, зависящий от этого коэффициента, который в свою очередь зависит от времени суток.
// а с помощью функции dechex десятиричное значение переводится в шестнадцатиричное
// и переменная $c вставляется в тег body как цвет фона

<html>
<head>
<title> Часы на странице сайта и изменение фона в зависимости от времени суток </title>
</head>
<body style="background:#<?php echo "$c$c$c"; ?>">

<table width="80%" border="1" align="center" bordercolor="#0000FF">
<tr>
.......... (и далее всё прежнее)

Сохраните изменения, обновите страницу в браузере. Я, конечно, не знаю, в какое время суток Вы занимаетесь этим скриптом. Если ночь, то фон страницы должен быть чёрным, днём - разных оттенков серого в зависимости от времени дня. Проверить, как меняется цвет в зависимости от времени, можно не дожидаясь, прямо сейчас.

Для этого существует функция

mktime ()

Она переопределяет текущее время. Добавим эту функцию в код после строки:

$new = time (); //определяем текущее время с помощью функции time ()

То есть, так:

<?php
//подготавливаем данные
//определяем текущее время
// $new = time (); //определяем текущее время с помощью функции time ()

$new = mktime (); // чтобы проверить, меняется ли цвет от времени суток, предыдущую строку закомментируем (ставим перед ней два слэша), а эту раскомментируем (убираем слэши впереди). В скобки ставим значение функции от 0 до 24 (время, в которое мы хотим увидеть оттенок экрана)

$H = date ('H', $new); //определяем часы
$i = date ('i', $new); //определяем минуты
............. и т. д.

В скобки добавляем значение, соответствующее времени суток, когда мы хотим увидеть освещённость экрана - от 0 до 24.

Сохраняем изменения, обновляем страницу в браузере...

Успехов.

P. S. Подпишитесь на безплатную рассылку Вокруг Сайта и получайте на свой электронный адрес новые уроки по созданию сайта.

P. S. 2. Если Вы хотите научиться создавать PHP-сайты профессионально и сэкономить на освоении программирования несколько лет, то Вам сюда.

Автор: Андрей Чернобай

P. S.Как создать сайт на PHP и MySQL

Оставьте свой отзыв о статье:



Введите цифровой код с картинки*:

"Вокруг Сайта"
подпишитесь и получайте на свой e-mail уроки, книги, статьи, скрипты, а также подарки и скидки на товары, продаваемые с сайта


Узнать подробней о рассылке "Вокруг Сайта" >>


"Как создать PHP-сайт?"
- подпишитесь и получите видеоуроки по PHP прямо сейчас

Узнать подробней о мини-курсе "Как создать PHP-сайт?" >>



PHP-песочница
Подписаться письмом



Карта
rss
Карта