如何在日期变量中添加一小时

时间:2014-02-11 02:32:00

标签: php date shift

我有一个存储在数据库中的变量,用于标记用户开始转换的时间,例如,它可能看起来像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 />";

        }

但是这不会增加一个小时,所以我怎样才能为我所拥有的内容添加一小时?

3 个答案:

答案 0 :(得分:1)

一个选项,在查询中执行:

$new_query = mysql_query("SELECT start + INTERVAL 1 HOUR as NEW_START, shifts.* FROM shifts WHERE shift_id = '$sid'");

答案 1 :(得分:0)

使用

更改echo中的$ over
date('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;

http://php.net/strtotime

答案 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永远不会是真的