Изменение фона для Night & Day с помощью php?

Я работаю на странице tumblr. У меня есть два разных фона для html-страницы, и я хочу, чтобы фон DAY отображался с 7 утра до 8 вечера и ночной фон для отображения с 8 вечера до 7 утра.

Я решил сделать это в 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; ?>; } 

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

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

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

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

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

 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'; } 

Функция 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> 

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

ваш 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>UK</h1> </div> 

то просто создайте классы .night или .day

Вы можете установить разные файлы 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">