我有一个存储在数据库中的变量,用于标记用户开始转换的时间,例如,它可能看起来像03:05,因为我有日期(“H:i”);我怎样才能将一小时添加到从数据库中提取的变量?这是我的代码。
$sid = $_SESSION["shift_id"];
$new_query = mysql_query("SELECT * FROM `shifts` WHERE `shift_id` = '$sid'");
$new_row = mysql_fetch_Assoc($new_query);
$check_start = $new_row["start"];
$over = $check_start + 3600;
if($check_start > $over)
{
echo "Your shift is complete.";
}else
{
echo "<br />The time will be :<b>$over</b> when your shift is over.<br />";
}
但是这不会增加一个小时,所以我怎样才能为我所拥有的内容添加一小时?
答案 0 :(得分:1)
一个选项,在查询中执行:
$new_query = mysql_query("SELECT start + INTERVAL 1 HOUR as NEW_START, shifts.* FROM shifts WHERE shift_id = '$sid'");
答案 1 :(得分:0)
使用
更改echo中的$ overdate('H:i', $over)
http://www.php.net/time 并使用php enclosure
echo "<br />The time will be :<b>".date('H:i', $over)."</b> when your shift is over.<br />";
代替
echo "<br />The time will be :<b>$over</b> when your shift is over.<br />";
<强>更新强> 如果您对结果有疑问,也许您可以在使用我的代码之前将您的开始转换为日期格式
$over = strtotime($check_start) + 3600;
答案 2 :(得分:0)
我看到你在几秒钟内处理时间,所以你可以像这样爆炸行开始
$check_start = $new_row["start"];
$hora = explode(':', $check_start);
$check_start = ($hora[0] * 3600) + ($hora[1] * 60);
$over = $check_start + 3600;
此时你有一个check_start数字,以秒为单位,但你的代码永远不会进入“Shift完成”部分,因为你总是在条件
中为变量添加3600所以$ check_start&gt; $ over永远不会是真的