-3

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

当我运行 PHP 时,页面上的背景颜色为空白,而 HTML 具有background-color: ;. 它没有达到blueorblack属性,我想知道为什么。

有任何想法吗?

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

3 回答 3

4

你有两个问题。第一个是如果时间(格式为时间,IE 10:13)大于/小于格式为 UNIX 时间戳的时间,您会检查是否如此。不幸的是,这行不通。要解决这个问题,您应该将date()调用包装在strtotime()方法中。

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

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;
}
于 2013-09-25T01:14:59.350 回答
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>
于 2013-09-25T01:24:01.347 回答
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();">
于 2013-09-25T01:34:01.763 回答