PHP:在特定时间更改CSS属性

时间:2013-09-25 01:04:03

标签: php html css

所以,我正在尝试编写一个简单的函数,在一天中的特定时间更改背景颜色,但有些东西不能正常工作。

当我运行PHP时,页面上的背景颜色为空白,HTML为background-color: ;。它没有达到blueblack属性,我想知道原因。

有什么想法吗?

PHP:

<?php
function backgroundColor(){
    $backgroundColor = '';

    if (date('H:i') >= strtotime('06:00') && date('H:i') <= strtotime('20:00')){
        $backgroundColor == 'blue';
    } else {
        $backgroundColor == 'black';
    }

    return $backgroundColor;
}
?>

HTML:

<html>
<head>
    <title></title>

    <style>
        body{
            background-color: <?=backgroundColor()?> ;
        }
    </style>
</head>
<body>
    <?php echo date('H:i')?>
</body>
</html>

3 个答案:

答案 0 :(得分:4)

你有两个问题。第一个是你做的检查,如果一个时间(形成一个时间,I.E。10:13)大于/小于一个时间形成的UNIX时间戳。不幸的是,这不会起作用。要解决此问题,您应该使用date()方法包裹strtotime()次来电。

第二个问题是您尝试使用多个=符号设置值。在php中,您可以使用单个=设置值。多个==用于检查变量是否具有某个值。请尝试以下修订的代码:

function backgroundColor(){
    $backgroundColor = '';

    if (strtotime(date('H:i')) >= strtotime('06:00') && strtotime(date('H:i')) <= strtotime('20:00')){
        $backgroundColor = 'blue';
    } else {
        $backgroundColor = 'black';
    }

    return $backgroundColor;
}

答案 1 :(得分:1)

您需要在date()函数上使用strtotime()函数将两者正确转换为等效函数。

此外,您使用==比较运算符代替= set运算符。

PHP:

<?php
function backgroundColor(){
    $backgroundColor = '';
        if (strtotime(date('H:i')) >= strtotime('06:00') && strtotime(date('H:i')) <=                strtotime('20:00')){
    $backgroundColor = 'blue';
    } else {
        $backgroundColor = 'black';
    }
    return $backgroundColor;
    }
?>

HTML:

<html>
<head>
    <title></title>
    <style>
        body{
             background-color: <?php echo backgroundColor();?> ;
        }
    </style>
</head>
<body>
    <?php date('H:i');?>
</body>
</html>

答案 2 :(得分:1)

我想提出这个想法的更大问题。 PHP不是一种时区感知语言,因此如果您对访问者位置没有可靠的洞察力,那么使用服务器端逻辑进行这种类型的主题将会引起很多麻烦。也许我可以使用Javascript建议一个更可靠但尽管完全不同的解决方案。

<script type="text/javascript">

function assignBackgroundColor(){

  var d = new Date();

  var body = document.body;

  if (d.getHours() > 6 && d.getHours() <= 20){

    body.style.backgroundColor = "#0000FF"; //blue

  }else{

    body.style.backgroundColor = "#000000"; //black

  }

}

</script>

然后在身体的onload事件中调用它。

<body onload="assignBackgroundColor();">