如何使if语句基于时间戳的日期导致php表?

时间:2017-01-10 11:55:33

标签: php mysql timestamp

我正在建立一个日志,每天会有几个条目。当我查看日志时,我希望每个日期之间有一个小空格。

有没有一种简单的方法来比较我的第一列中的日期,然后在日期更改时发出if语句? 在伪代码中:如果第1列中的日期发生变化:添加空格。

这是我表格代码的摘录:

    echo "<tr><td>"; 
    echo date('d.m.y', strtotime($row['timestamp']));
    echo "</td><td>";   
    echo date('G:i', strtotime($row['timestamp']));
    echo "</td><td>";    
    echo $row['value'];
    echo "</td></tr>";

当前输出:

    Date:       Time:  Value:
    01.01.2017  06:00  40
    01.01.2017  08:00  35
    01.01.2017  10:00  32
    02.01.2017  06:00  57
    02.01.2017  08:00  42
    ...

通缉输出:

    Date:       Time:  Value:
    01.01.2017  06:00  40
    01.01.2017  08:00  35
    01.01.2017  10:00  32

    02.01.2017  06:00  57
    02.01.2017  08:00  42
    ...

3 个答案:

答案 0 :(得分:0)

将$ row [&#39; timestamp&#39;]存储在foreach循环结尾的变量中,例如: $ previousday。 然后,您可以将下一个循环的$ row [&#39; timestamp&#39;]与$ previousday进行比较。如果它们不相同,则输出额外的数据,跳过额外的

答案 1 :(得分:0)

您的代码周围会有某种循环。在这段代码中,您可以创建一个变量$ oldDate(或者根据需要命名它) - 然后添加空格(如果它与新数据不同)。

// outside of loop
$oldDate = '';

// loop starts here - fills $row somehow
    $curDate = date('d.m.y', strtotime($row['timestamp']));
    if (!empty($oldDate)) {
      if ($oldDate != $curDate) {
         echo 'Some space here';
      }
    }
    $oldDate = $curDate;
   // now add your code

答案 2 :(得分:0)

我假设您在循环中打印行,因此您可以添加将保留上一个日期的变量,然后检查它是否不同。我认为您甚至可以跳过比较日期并仅比较字符串值。

$previousDate = '';
foreach ($rows as $row) {
    // your block of echos
    $currentDate = strtotime($row['timestamp']);
    if (!empty($previousDate) && ($previousDate != $currentDate)) {
        echo '<tr><td colspan="3"></td></tr>';
    }
    $previousDate = $currentDate;
}