Изменение фона для ночи и дня с помощью php? - PullRequest
6 голосов
/ 05 декабря 2010

Я работаю над страницей Tumblr.У меня есть два разных фона для html-страницы, и я хочу, чтобы фон ДЕНЬ отображался с 7:00 до 20:00, а ночной фон - с 8:00 до 7:00.

Я решил сделать это в php, но я новичок, когда дело доходит до php.Мой друг прислал мне пример кода, который я мог бы использовать.Но я понятия не имею, что с этим делать.Можете ли вы, ребята, помочь.

Вот пример кода.

<?php
header('content-type: text/css');

date_default_timezone_set("America/Vancouver");
$now = date('G');

if ($now < 12) {
    $bg = '#FFFFFF';
} else {
    $bg = '#000000';
}
?>

body {
    background: <?php echo $bg; ?>;
}

Ответы [ 5 ]

6 голосов
/ 05 декабря 2010

date() возвращает локальную дату / время сервера, что означает, что если ваш сервер находится в США, например, пользователь из Восточной Азии или Австралии увидит неправильный фон.

IЯ знаю, что это не то, что вы искали, но я бы посоветовал сделать это с JS, который работает на стороне пользователя, а не на стороне сервера, и поэтому часовой пояс не будет иметь значения, поскольку скрипт будет получать время пользователя, а не серверавремя.Сценарий будет выглядеть примерно так:

var localDate = new Date();
if (localDate.getHours() > 7 && localDate.getHours() < 20) {
    document.bgColor = "#fff";
} else {
    document.bgColor = "#000";
}

Надеюсь, это поможет!

1 голос
/ 05 декабря 2010

Попробуйте изменить:

body {
    background: <?php echo $bg; ?>;
}

до:

<body style="background-color: <?php echo $bg; ?> !important;">

Мне кажется, что у вас PHP-код. Обратите внимание, что он будет отображать белый фон с 12:00 до 12:00. Попробуйте следующий код для сохранения белого фона с 7:00 до 20:00 и черного (как сказал Аарон).

Заменить:

if ($now < 12) {
    $bg = '#FFFFFF';
} else {
    $bg = '#000000';
}

с:

if ($now < 7 || $now > 20) {
    $bg = '#000000';
} else {
    $bg = '#FFFFFF';
}
0 голосов
/ 08 февраля 2016

Вы можете установить различные файлы CSS, один для дневного, а другой для ночного.

$date = getDate();

// check day or night
// it's day by default
$css = "css/main.css";

if ($date['hours'] < 7 || $date['hours'] > 20){
    // is night
    $css = "css/main-night.css";

}

Затем в теге <meta>, который определяет файл стиля страницы.

    <link href="<?= $css ?>" rel="stylesheet">
0 голосов
/ 09 февраля 2014

Я использовал что-то вроде этого

ваш php:

    function getUKTime() {

    date_default_timezone_set('Europe/London');

    $time = date('H');
    $style = "";

    if ($time >= 6 && $time <= 18) {
        $style = $style . "day";
    }
    else {
        $style = $style . "night";
    }

    echo $style;
}

в вашем html:

<div id="uk" class="<?php getUKTime(); ?>">
    <h1>U.K.</h1>
</div>

, тогда просто стилизуйте ваши .night или .day классы

0 голосов
/ 05 декабря 2010

Используемая вами функция date возвращает 24-часовой формат текущего часа. Затем в условном выражении вы должны изменить это, чтобы проверить, в каком диапазоне вы находитесь. Если $now находится между 7 и 20, вы можете установить его в качестве дневного фона. В противном случае установите его на ночное время. Дайте мне знать, если вам нужно больше деталей для этого.

<?php
header('content-type: text/css');

date_default_timezone_set("America/Vancouver");
$now = date('G');

if ($now > 7 && $now < 20) {
    $bg = '#FFFFFF';
} else {
    $bg = '#000000';
}
?>

<body style="background-color:<?php echo $bg; ?> !important;">
 <!-- Your HTML code here -->
</body>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...