Php 在不同的选项对之间找到正确的值

Php 在不同的选项对之间找到正确的值,php,Php,我需要根据一天中的不同时间显示一个图标 图标1–凌晨1点至7点 图标2–上午7点至8点 图标3–上午8点至下午12点 图标4–下午12点至下午1点 图标5–下午1点至6点 图标6–下午6点至8点 图标7–晚上8点到凌晨12点。 这些图标和时间对将动态地来自数据库 如何创建一个循环来查找一天中任何时间的正确图标?它可以是一个返回正确值的简单开关。 比如: $current_time = date('G'); switch(TRUE) { case($current_time >=

我需要根据一天中的不同时间显示一个图标

图标1–凌晨1点至7点 图标2–上午7点至8点 图标3–上午8点至下午12点 图标4–下午12点至下午1点 图标5–下午1点至6点 图标6–下午6点至8点 图标7–晚上8点到凌晨12点。 这些图标和时间对将动态地来自数据库


如何创建一个循环来查找一天中任何时间的正确图标?

它可以是一个返回正确值的简单开关。 比如:

$current_time = date('G');

switch(TRUE) {
    case($current_time >= 1 && $current_time <= 7):
        //set right icon
        //another options...
}
另一种选择是直接从SQL查询执行,但我不确定这个解决方案有多好。类似于从表中选择图标,其中开始时间=>CURTIME和结束时间
//我只是建议按照我的逻辑

你的问题不清楚。首先你提到了图标和相应的时间框架,然后你说这些将动态地来自数据库。图标和相应的时间框架是示例数据,这将存储在数据库中。如果您解决此操作点,我将执行+1“这些图标和时间对将动态来自数据库。”感谢您的快速回答,我需要在数据库中存储时间范围,以便管理员可以更改它们。但我想我可以用循环在switch语句中动态地创建案例。不幸的是,switch内部不支持循环:好的,答案取决于这个:您是否总是有7个图标或更少?在这种情况下,您可以从数据库中输出这些值,如$start_time[n]和$end_time[n],并为每种情况相应地设置它们。你不能动态创建php操作符,除非你制作代码生成器。图标的数量可以更改,因为管理员有能力添加它们,我不想以任何方式修复它们。请不要这样编码。
<!DOCTYPE html>
<html>
<body>

<?php
// Prints the day

$d= mysql_query("SELECT  * from result ");
$row = mysql_fetch_assoc($d);
$now = date("gA");
echo $now;
if($now=='1AM' or $now=='2AM' or $now=='3AM'or $now=='4AM' or $now=='5AM' or $now=='6AM')
{
echo $row['Icon 1'];
}
elseif($now=='7AM')
{
echo $row['Icon 2'];
}
elseif(  $now=='8AM' or $now=='9AM' or $now=='10AM' or $now=='11AM')
{

echo $row['Icon 3'];
}
elseif($now=='12PM' or $now=='1PM' or $now=='2PM' or $now=='3PM' or $now=='4PM' or $now=='5PM' )
{

echo $row['Icon 4'];
}
elseif( $now=='6PM' or  $now=='7PM'  )
{

echo $row['Icon 5'];
}
elseif( $now=='8PM' or  $now=='9PM' or $now=='10PM' or $now=='11PM' or $now=='12AM'  )
{

echo $row['Icon 6'];
}

?>

</body>
</html>
<!DOCTYPE html>
<html>
<body>

<?php
// Prints the day

$d= mysql_query("SELECT  * from result ");
$row = mysql_fetch_assoc($d);
$now = date("gA");
echo $now;
if($now=='1AM' or $now=='2AM' or $now=='3AM'or $now=='4AM' or $now=='5AM' or $now=='6AM')
{
echo $row['Icon 1'];
}
elseif($now=='7AM')
{
echo $row['Icon 2'];
}
elseif(  $now=='8AM' or $now=='9AM' or $now=='10AM' or $now=='11AM')
{

echo $row['Icon 3'];
}
elseif($now=='12PM' or $now=='1PM' or $now=='2PM' or $now=='3PM' or $now=='4PM' or $now=='5PM' )
{

echo $row['Icon 4'];
}
elseif( $now=='6PM' or  $now=='7PM'  )
{

echo $row['Icon 5'];
}
elseif( $now=='8PM' or  $now=='9PM' or $now=='10PM' or $now=='11PM' or $now=='12AM'  )
{

echo $row['Icon 6'];
}

?>

</body>
</html>