在下午6点到8点之间显示新设计

时间:2012-10-31 14:54:37

标签: php time

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

我有设计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 }?>

5 个答案:

答案 0 :(得分:1)

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

<?php if(date("H") > 18 && date("H") < 08 ){ ?>
    Display Design B
<?php } else { ?>
    Display Design A
<?php }?>

答案 1 :(得分: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中实现也需要这样做)。

答案 2 :(得分: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

答案 3 :(得分: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);?>

答案 4 :(得分: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>