改变夜晚背景&使用PHP的一天?

时间:2010-12-05 06:12:38

标签: php dynamic-css

我正在处理一个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; ?>;
}

5 个答案:

答案 0 :(得分:6)

date()将返回服务器本地日期/时间,这意味着如果您的服务器位于美国,例如来自东亚或澳大利亚的用户将看到错误的背景。

我知道这不是你想要的,但我建议用JS运行,它运行用户端而不是服务器端,因此时区无关紧要,因为脚本将获得用户的时间而不是服务器的时间。该脚本看起来像:

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

希望这有帮助!

答案 1 :(得分:1)

尝试更改:

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

为:

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

你的PHP代码对我来说似乎没问题。请注意,它将显示从中午12:00到午夜12:00的白色背景。尝试使用以下代码保持白色背景从上午7:00到晚上8:00,其他时间保持黑色(如Aaron所说)。

替换:

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

使用:

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

答案 2 :(得分:0)

您正在使用的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>

答案 3 :(得分:0)

我使用过这样的东西

你的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类

答案 4 :(得分:0)

您可以设置不同的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">