1

是的,我不是这个的忠实粉丝,所以请不要因为这个问题而把我列为这个问题,因为客户想要这个功能......不是我。

我有设计 A(浅色版本或网站),当他们访问 www.example.com 时会正常展示,但在每天下午 6 点到早上 8 点,客户想要展示设计 B(深色版本)。

这可以使用 PHP 完成吗?类似这样的东西:

<?php if the time right now is between 6pm and 8am { ?>
    Display Design B
<?php } else { ?>
    Display Design A
<?php }?>
4

5 回答 5

1
<?php
date_default_timezone_set("Europe/Isle_of_Man");
$imgfolder = "standard";
if(intval(date('H')) >= 18 || intval(date('H')) <= 8){ 
    $imgfolder = "dark";
    ?>
    <link rel= "stylesheet" type="text/css" href="dark.css" />
<?
}else{ 
    $imgfolder = "standard";
    ?>
    <link rel= "stylesheet" type="text/css" href="standard.css" />
<?
}

要加载图像,您可以使用:

<img src = "images/<?echo $imgfolder; ?>/header.jpg"...

您的图像应分别存储在images/standard/images/dark中。

于 2012-10-31T15:09:24.683 回答
1

你说你想要改变特定的图像,我可能会使用一个函数,

<?php
function chooseImage($image1, $image2){
    if(date("H") >= 8 && date("H") < 18 ){ ?>
        return '<img src="'.$image1.'" alt="Daytime Image" \>';
    <?php } else { ?>
    return '<img src="'.$image2.'" alt="Nighttime Image" \>';
<?php }?>

将它放在页面中的某个位置,然后无论您想要更改图像的任何位置,您都可以简单地调用该函数并将 2 个将作为变量更改的图像传递:

<?php chooseImage(image1.jpg,image2.jpg);?>
于 2012-10-31T15:23:51.583 回答
1

您可以使用日期函数来执行此操作。但是这个日期函数会回显你的服务器时区。如果您想在 gmt 中使用时间,请使用 gmdate()。

<?php if(date("H") > 18 && date("H") < 08 ){ ?>
    Display Design B
<?php } else { ?>
    Display Design A
<?php }?>
于 2012-10-31T14:57:16.900 回答
1

我喜欢这个概念,很高兴听到别人这样做!

无论如何,希望您的网站是围绕 CSS 设计的。在这种情况下,您的答案在于在必要时切换正确的 CSS 文件。请注意,大多数浏览器都会缓存 CSS,因此通过向 CSS 文件的请求添加任意参数来使用缓存破坏器:

<?php if(date("H") >= 18 && date("H") < 8 ){ ?>
    <style src="dark.css?r=<?php echo md5(rand().microtime()); ?>" />
<?php } else { ?>
    <style src="light.css?r=<?php echo md5(rand().microtime()); ?>" />
<?php }?>

有很多内联 IMG 标签?最好的解决方案是在 CSS 中重新实现它们。否则:

<?php
$sheet_time = (date('H') >= 18 && date('H') < 8) ? 'dark' : 'light';
?>
<img src="images/<?php echo $sheet_time; ?>/foo.jpg" />

自然地将所有图像拆分为暗/亮目录(即使您在 CSS 中实现也需要这样做)。

于 2012-10-31T14:58:14.620 回答
0
<?php

date_default_timezone_set('Europe/London');

$hour = (int) date('H');
if (($hour > 8 && $hour < 18)) {
    // it's past 8 AM and less then 6 PM
    $daytime_design = true;
    $resource_path = 'day';
}
else {
    // the other hours, 6 PM to 8 AM the next day
    $daytime_design = false;
    $resource_path = 'night';
}
?>

很久以后在我们的 template.tpl.php 或其他

<!doctype html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="/css/<?=$resource_path;?>/style.css">
</head>
<body>

<?php 
if ($daytime_design === true) {
    echo 'Good Day!';
}

if ($daytime_design === false) {
    echo 'Only shows for night design, <img src="special-night-image.jpg">';
}

?>

This will show /images/day/logo.jpg or /images/night/logo.jpg
<img src="/images/<?=$resource_path;?>/logo.jpg"> 

</body>
</html>
于 2012-10-31T14:58:41.173 回答