TIMESTAMPDIFF(MINUTES,$ foo1,$ foo2)没有显示

时间:2016-03-17 18:34:54

标签: php mysql

关于这个问题timein and timeout

如何发布这两次的差异?

我已经在 timeout.php

尝试了这个
<?php
include 'dbconfig.php';
session_start();

$timeid = $_GET['id'];
$timeout = date('Y-m-d H.i.s');

$sql = "UPDATE time SET timeout = '$timeout', totalmin = TIMESTAMPDIFF(MINUTE, '$timein','$timeout') WHERE time_id = '$timeid'
";
$query = mysql_query($sql);

mysql_close();

if(is_resource($query) and mysql_num_rows($query)>0){
    $row = mysql_fetch_array($query);
    echo $row["id"];
    }
echo $sql;

header('Location: ' . $_SERVER['HTTP_REFERER']);
?>

timein.php

<?php
include 'dbconfig.php';


$id = $_GET['id'];
$timein = date('Y-m-d H:i:s');
$timeout = '';

$sql = "INSERT INTO time (id, timein, timeout, totalmin)
        VALUES
        ('$id','$timein','','')
";
$query = mysql_query($sql);

mysql_close();

if(is_resource($query) and mysql_num_rows($query)>0){
    $row = mysql_fetch_array($query);
    echo $row["id"];
    }
echo $sql;

header('Location: employee.php?id='.$id);
?>

顺便说一下我在时间和超时时使用current_time标记。

1 个答案:

答案 0 :(得分:2)

您使用的是不正确的时间格式:

$timeout = date('Y-m-d H.i.s');
                        ^^^

MySQL的日期/时间字符串格式为yyyy-mm-dd hh:mm:ss,又名。 Y-m-d h:i:s - 使用冒号,而不是句号。

请注意,让PHP生成此日期字符串几乎没有任何意义。 MySQL无论如何都可以为你做到这一点:

  ... VALUES($id, now(), etc...)
                  ^^^^^

同样,请注意您很容易受到sql injection attacks

的攻击