2017-06-14 59 views
-1

我想根据数值是什么来改变数字的生成方式。默认值是unix时代,我将它们转换为回声小时。如何在php echo中使用多个if语句或函数?

$clock = time(); 

$sql = "SELECT unix FROM things"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    while($row = $result->fetch_assoc()) { 
     echo round(($row["unix"] - $clock)/3600) .' hours from now.; 

现在它的工作原理,并正确显示时间,但我想基于什么unix时间戳显示去改变它,这是它得到棘手。 我希望如果unix秒数小于3600,“小时数”会变为分钟,如果小于60,秒数会变为秒,如果超过86400,则“天数”会变为几秒。我该怎么做?

+1

可能dupplicate:https://stackoverflow.com/questions/8273804/convert-seconds-into-days-hours-minutes-and-seconds –

+0

[转换秒进入天,小时可能的复制,分钟和秒](https://stackoverflow.com/questions/8273804/convert-seconds-into-days-hours-minutes-and-seconds) –

回答

0

你可以嵌入你的小心脏。

if ($result->num_rows > 0) { 
    while($row = $result->fetch_assoc()) { 
     //DONT NEED $ SIGN WHEN ROUNDING!!!! 
     $time = round(($row["unix"] - $clock/3600); 
     if ($time <= 60) { 
      echo $time . ' seconds from now.'; 
     } elseif (($time > 60) && ($time <= 3600)) { 
      echo $time . ' hours from now.'; 
     } else { 
      // You get the idea. 
     } 
    } 
} 
+0

NVM im dumb tyyty – Petras

+0

这是指出,佩特拉斯。我每次都这样做。 – Joe

0
if ($result->num_rows > 0) { 
    while($row = $result->fetch_assoc()) { 
    $time = round(($row["unix"] - $clock/3600); 
    if ($time <= 60) { 
     echo $time . ' seconds from now.'; 
    } elseif (($time > 60) && ($time <= 86400)) { 
     echo $time . ' hours from now.'; 
    } else { 
     echo $time . ' days from now.'; 
    } 
    } 
}