【发布时间】:2015-02-03 08:07:06
【问题描述】:
我正在为员工编写时间注册表。我有两列。 Stamp_in 和 Stamp_Out。当员工注册时,一个DateTime 值存储在db 中。看起来像:$datetime_now = date('Y-m-d H:i:s'); 和注册时相等。但是在注册时,stamp_out 列中的值将是:0000-00-00 00:00:00。在stamp_in 列中注册也是如此。
现在,当我循环输出时,我喜欢匹配同一天的日期以在同一行上打印,但我不希望打印“空”日期。
这段代码应该是什么样子的?
这是我目前得到的:
PHP
//Loop out the result
while ($row = $stmt->fetch()) {
echo "<tr>";
echo "<td>" .$row['usr_stamp_in']."</td>";
echo "<td>" .$row['usr_stamp_in']."</td>";
echo "</tr>";
}
我试过了
if($row['usr_stamp_in'] != "0000-00-00 00:00:00"{
while($row ...
【问题讨论】:
-
而不是在您的员工注册时处理 php,为什么不在登录/注销时使用 CURRENT_TIMESTAMP 或 NOW() 之类的时间戳在您的数据库中执行它?您的查询几乎已完成,但您需要这样做:while($row = $stmt->fetch()){ if($row['usr_stamp_in']!="0000-00-00 00:00:00"){//随心所欲}}。顺便说一句,要在同一天匹配,当您从数据库中获取数据时,您需要使用 WHERE 修复它,然后 ORDER BY 并且您也应该使用 WHERE 子句从查询中删除空行;)
-
认为您应该考虑一下您的数据库布局。
-
@Jens。是的,您正在记录事件。只需要一个日期,以及一个指示事件类型的字段。
-
我在一家网络托管公司,服务器时间和我的不一样。所以,时间戳会给出错误的时间。否则非常有用的提示。谢谢!