6

我正在制作一个 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; ?>;
}
4

5 回答 5

6

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

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

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

希望这可以帮助 !

于 2010-12-05T06:46:09.903 回答
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';
}
于 2010-12-05T06:22:22.563 回答
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>
于 2010-12-05T06:16:46.283 回答
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 课程设置样式

于 2014-02-08T23:33:47.950 回答
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">
于 2016-02-08T17:48:21.617 回答