如何在PHP中显示不同时间范围的不同内容?

时间:2012-09-26 21:49:17

标签: php

当我们在空中播放5a-10a M-F时,尝试编写可显示流媒体播放器的部分页面,并在我们不播出时显示其他内容。

这就是我现在所拥有的,但它不起作用。我是PHP的新手。谢谢!

<html>
<head>
<title>streaming</title>
</head>
<body>
<?php

//Get the current hour
$current_time = date(G);
//Get the current day
$current_day = date(l);

//Off air
if ($current_day == "Saturday" or $current_day == "Sunday" or ($current_time <= 5 && $current_time >= 10)) {
echo "We’re live Monday – Friday mornings. Check back then.";
}

// Display player
else {
echo "<a href="linktoplayer.html"><img src=http://www.psdgraphics.com/wp-content/uploads/2009/09/play.jpg></a>";
}


?>
</body>
</html>

3 个答案:

答案 0 :(得分:4)

#1。

此声明将始终为FALSE:

($current_time <= 5 && $current_time >= 10)

正确:

($current_time < 5 || $current_time >= 10)

#2。

$current_time = date(G);$current_day = date(l);将输出通知:

Notice:  Use of undefined constant G - assumed 'G' in ...
Notice:  Use of undefined constant l - assumed 'l' in ...

正确:

$current_time = date('G');
$current_day = date('l');

#3。

此代码echo "<a href="linktoplayer.html"><img src=http://www.psdgraphics.com/wp-content/uploads/2009/09/play.jpg></a>";也将输出PARSE ERROR:

Parse error: syntax error, unexpected 'linktoplayer' (T_STRING), expecting ',' or ';' in ...

如果您希望输出字符串,则必须使用"转义\

echo "<a href=\"linktoplayer.html\"><img src=\"http://www.psdgraphics.com/wp-content/uploads/2009/09/play.jpg\"></a>";

或改为使用'

echo '<a href="linktoplayer.html"><img src="http://www.psdgraphics.com/wp-content/uploads/2009/09/play.jpg"></a>';

P.S。图片的src属性必须附加""

答案 1 :(得分:4)

两件事:

  1. 正如已经指出的那样,你的时间逻辑是关闭的。它应该是$current_time < 5 or $current_time >= 10)

  2. 当你给日期函数提供一些东西时,它必须是一个字符串。 date(l)会抛出错误,因为它应该是date('l')

  3. 修改

    如果您真的想要对代码进行基准测试,则应使用idate代替,因为它返回一个整数。您的比较如下:

    $current_time = idate('H');
    $current_day = idate('w');
    
    if ($current_day === 0 || $current_day === 6 || 
        $current_time < 5 || $current_time >= 10) {
        echo "We’re live Monday – Friday mornings. Check back then.";
    }
    

答案 2 :(得分:0)

我认为您应该更改If语句结构,使其看起来像这样

IF (on-air) 
THEN DisplayPlayer() 
ELSE echo "message saying Off Air"
通过这样做,当有人在您上线时尝试访问该网站时,您可以更快地点击播放器。

这是一项优化,可以在播出时加快加载速度。如果你 off air ,它将经历两个步骤。它只取决于你想要更快的加载时间

除了@glavić在他的答案中写的内容之外,还应该使用它。