【问题标题】:Changing Background for Night & Day using php?使用 php 更改夜晚和白天的背景?
【发布时间】:2010-12-05 06:12:37
【问题描述】:

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

【问题讨论】:

标签: php dynamic-css


【解决方案1】:

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

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

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

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    尝试改变:

    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';
    }
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 大声笑,是的。我注意到了这一点,并且已经在研究如何告诉 php 这样做。我只需要知道如何在 html 网页上实现它。这让我有点困惑。特别是因为 html 不在我的服务器上。
      • 哇,就这么简单?这次真是万分感谢。由于 html 在远程服务器上,我将如何调用 php 文件?
      【解决方案4】:

      我用过这样的东西

      你的 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 课程设置样式

      【讨论】:

        【解决方案5】:

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

        然后,在&lt;meta&gt; 标记中,定义页面的样式文件。

            <link href="<?= $css ?>" rel="stylesheet">
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-12-27
          • 2016-04-08
          • 1970-01-01
          • 2021-02-15
          • 2019-11-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多