2010-12-05 39 views
6

我正在做一个tumblr页面。我有两个不同的HTML页面背景,我希望DAY背景从早上7点到晚上8点显示,晚上背景从晚上8点到上午7点显示。使用php更改夜晚和日子的背景?

我决定在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; ?>; 
} 
+0

您是否考虑检查日落时间而不是明确指定日夜时间? http://php.net/manual/en/function.date-sunset.php – 2015-05-20 10:12:38

回答

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> 
+0

大声笑,是的。我注意到了这一点,并且已经在研究如何告诉php做到这一点。我只需要知道如何在HTML网页上实现它。这让我有点困惑。特别是因为html不在我的服务器上。 – 2010-12-05 06:19:18

1

尝试改变:

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

到:

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

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

替换:

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

有:

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

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

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

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

希望这会有所帮助!

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> 

然后只是风格你。晚上或。天类

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">