Зависимость дизайна сайта от времени года
Чтобы ваш сайт не смотрелся скучным, можно постоянно менять ему дизайн. Если этот процесс автоматизировать, чем мы сейчас и займёмся, меняя дизайн, например, в зависимости от времени года (лето, осень, зима, весна), то получится отличный эффект.
Один из вариантов, который на мой взгляд является наиболее правильным, — подмена css -файла в зависимости от времени года. В этом нам поможет РНР.
Чтобы определить, какое сейчас время года, напишем функцию:
function getSeason() {
$seasons = array(
0 => 'winter',
1 => 'spring',
2 => 'summer',
3 => 'autumn'
);
return $seasons[floor(date('n') / 3) % 4];
}
Знак процента — деление по модулю
Вставим нашу функцию в HTML-код:
<html>
<head>
<link rel="stylesheet" type="text/css" href="<?php echo getSeason()?>.css" />
</head>
</html>
По аналогии можно менять стили в зависимости от времени суток, праздников. По данному алгоритму работает сайт Сеймчан.Ру
RTFM
- функция date получает отформатированную дату/время
- функция floor округляет дробь в меньшую сторону
- Операции с переменными PHP (операторы)
В принципе всё ясно, но есть одна деталь которую так и не смог найти нигде. В строке
return $seasons[ floor(date('n') / 3) % 4 ]
Что означает знак процента и цифра 4?
Моё мнение, надо пояснять скрипт при его публикации.
date('n')
— возвращает порядковый номер месяца от 1 до 12;которую делим на 3 (/3);
получаем 1,2,3 месяцы деленные на 3 дают дробное число меньше 1
4,5,6 месяцы деленные на 3 дают больше 1, но меньше 2 и т.д.
Далее функция
floor()
округляет дробное число до целого в меньшую сторону — отсюда вариантов ответа четыре — (0,1,2,3).Собственно, возвращаем массив
$seasons[]
с ключем, полученным изfloor()
:0 то зима;
1 — весна;
2 — лето;
3 — осень;
Символ процента и цифра 4, я так понимаю помагают нам внести поправку на то, что зима у нас 12, 1, 2 месяцы и т.д. Объясните пожалуйста что же это за магические символ процента и цифра 4?
% — деление по модулю
Если возникают вопросы такого характера, то советую всегда для начала смотреть мануал (тоже по-русски) — там есть все ответы.
Также можете заглянуть в раздел «Шпаргалки» — здесь вы найдете мануал по РНР в формате CHM.
О, спасибо, взял на заметку
Как быть с южным и северным полушарием?
Для южного полушария лето — декабрь, январь, февраль.
Поправить месяца в скрипте для вашего случая.
Уточняю вопрос:
Как пользователю из Австралии 23-го февраля «показать лето», а пользователю из Финляндии — зиму.
Сдвиньте индексы массива
$seasons
. Если совсем в лоб, то смотрите этот вариант.дизаИн?
Не понял сути?