【发布时间】:2015-08-10 02:53:44
【问题描述】:
我想查看两个小时之间的差异,但是当用户不注销时,我在字符串中手动给它一个小时,然后我尝试将其转换为时间并检查差异。然而结果总是$d_time_in,即使这两个字符串不为空且格式相同。
$start_timestamp = mktime(0, 0, 0, $_POST[selectMonth], $_POST[selectDay], $_POST[selectYear]);
$end_timestamp = $start_timestamp + 86399;
$q1 = "SELECT c.user_id, c.date, c.time_in, c.time_out, u.user_firstname, u.user_lastname
FROM control_time c
LEFT JOIN user u
ON u.user_id = c.user_id
WHERE c.date >= $start_timestamp AND c.date <= $end_timestamp";
$r1 = mysql_query($q1) or die(mysql_error());
$num_rows = mysql_num_rows($r1);
if($num_rows > 0){
$display .= "<table border=\"0\" cellspacing=\"1\" cellpadding=\"4\">
<tr>
<td bgcolor=\"#CCCCCC\"><strong>Usuario</strong></td>
<td bgcolor=\"#CCCCCC\"><strong>Fecha</strong></td>
<td bgcolor=\"#CCCCCC\"><strong>Ingreso</strong></td>
<td bgcolor=\"#CCCCCC\"><strong>Salida</strong></td>
<td bgcolor=\"#CCCCCC\"><strong>Trabajadas</strong></td>
</tr>";
while($time_info = mysql_fetch_assoc($r1)){
if($time_info[time_in] > ($time_info[date]+34200)){
$in_bg = "#F3F781";
}else{
$in_bg = "#DDDDDD";
}
//specify time in
$d_time_in = date("G:i a", $time_info[time_in]);
if($time_info[time_out] == 0){
if(date('w', $time_info[date]) == 6){
$d_time_out = '15:00 pm';
}else{
$d_time_out = '19:00 pm';
}
$out_time = strtotime($d_time_out);
$out_bg = "#F5DA81";
}else{
$d_time_out = date("G:i a", $time_info[time_out]);
$out_time = strtotime($d_time_out);
$out_bg = "#DDDDDD";
}
$difference_hours = strtotime($d_time_in) - $out_time;
if($difference_hours != 0){
$d_time_worked = date("G:i",$difference_hours);
}else{
$d_time_worked= "00:00";
}
$display .= "
<tr>
<td bgcolor=\"#DDDDDD\">$time_info[user_firstname] $time_info[user_lastname]</td>
<td bgcolor=\"#DDDDDD\">".date("d-m-y", $time_info[date])."</td>
<td bgcolor=\"$in_bg\">$d_time_in</td>
<td bgcolor=\"$out_bg\">$d_time_out</td>
<td bgcolor=\"#DDDDDD\">$d_time_worked</td>
</tr>";
}
$display .= "</table>";
}
【问题讨论】:
-
呵呵,你的
time_out和time_in是常量吗?否则你至少应该得到几个 PHP 警告。 -
两者都是时间戳,然后在php中转换为日期格式
-
不,我的意思是文字
time_out和time_in。如果您使用$time_out和$time_in或TIME_OUT和TIME_IN我不会问这个问题... -
我编辑了整个代码,所以你可以看到。 time out 和 time in 仅在数组上使用 time in 和 time out 为我提供了正确的信息,但是在尝试查看两者之间的差异时出现了问题。
-
我的意思是,PHP变量应该以
$开头,而你的time_out和time_in不要以它开头,而且它们也不是大写的,所以我想知道它们是否是常量,或者您是否错过了$...
标签: php date time difference