douzhuan0309 2015-07-19 22:32
浏览 76

如果时间为空,则显示空字符串 - PHP / MySqli

$sql = "SELECT * FROM post";
$result = $conn->query($sql);

if ($result->num_rows > 0) {

 // output data of each row
 while($row = $result->fetch_assoc()) {
if(strtotime($row['time']) > "00:00:00") {
   $time = date('g:i A', strtotime($row['time']));
}  else{
   $time = '';
}
echo "<span class='infoTitle'>Time:</span> "."<span class='userInfo'>".$time."</span>"."<br>";
}
}

Hey guys, so i have the above code. What I'm trying to do is display an empty string where Time: is echoed. So if no time is input then this is what it should look like

Time: 

If a time is input by the user, then it should display the time he input. For example if he puts in 6:00 PM.

Time: 6:00 PM

What the code is currently doing is displaying the correct time if a user inputs. But if left blank, then this displays:

Time: 12:00 AM

Any ideas whats going on here? Is 12:00 AM the default? If so, how do i tell PHP to leave it blank if its displaying that? Sorry guys, total PHP noob here. Barely 1 week into this. But its fun!

  • 写回答

1条回答 默认 最新

  • douchen2025 2015-07-19 22:41
    关注

    12:00 AM is not default, but strtotime() returns FALSE on failure. False is equal to 0.

    date('g:i A',0) would return 12:00 AM because it 's epoch time. 1970-01-01 00:00:00

    To prevent this, you could run

    if(strtotime($row['time'])>0){ 
       $time = date('g:i A', strtotime($row['time']));
    }
    
    评论

报告相同问题?