我正在建立一个日志,每天会有几个条目。当我查看日志时,我希望每个日期之间有一个小空格。
有没有一种简单的方法来比较我的第一列中的日期,然后在日期更改时发出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
...
答案 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;
}