从mysql日期条目开始到现在已经过了几秒钟

时间:2012-11-02 14:48:30

标签: php mysql datetime

我已经搜索过,我有太多的试验/错误,但没有运气。所以这就是:

我想知道自从使用NOW()插入的Mysql条目的日期以及格式为date("Y.m.d H:i:s")的当前日期以来已经过了多少秒。这是我的php函数(取自用户发布了@stackoverflow。

function multipost(){
global $dbh;
$ip= $_SERVER['REMOTE_ADDR']; 

$sql = "select * from  table where ip='$ipa' order by date_time desc limit 1";

foreach ($dbh->query($sql) as $row) {
    $timeFirst=$row['date_time'];
    $timeSecond=date("Y.m.d H:i:s");
    $differenceInSeconds = $timeSecond-$timeFirst;
    echo $differenceInSeconds;
}

我也试过strtotime($row['date_time'];)但没有运气。 有帮助吗? 提前谢谢。

3 个答案:

答案 0 :(得分:1)

function secDifference($date,$time){
    $dateVals = explode("-",$date);
    $timeUnix = 0;
    if($time == 0){
        $timeUnix = date("U",mktime(0,0,0,$dateVals[1],$dateVals[2],$dateVals[0]));
    }
    else{
        $tempVals = explode(" ",$dateVals[2]);
        $dateVals[2] = $tempVals[0];
        $timeVals = explode(":",$tempVals[1]);
        $timeUnix = date("U",mktime($timeVals[0],$timeVals[1],$timeVals[2],$dateVals[1],$dateVals[2],$dateVals[0]));
    }
    return (date("U")-$timeUnix);
}

复制此功能。 为了得到DATE和NOW的区别:

secDifference("12/03/1993");

为了获得DATE TIME和现在的差异:

secDifference("12/03/1993 14:54:32",1);

希望它有所帮助。

答案 1 :(得分:1)

你可以让mysql为你返回值:

select *, TIMESTAMPDIFF(SECOND, NOW(), date_time) AS time_diff from  table where ip='$ipa' order by date_time desc limit 1

答案 2 :(得分:0)

如果您只想知道以秒为单位的时间差异,可以使用MySQL TIMESTAMPDIFF()。您的查询字符串将如下所示:

$sql = "SELECT *, TIMESTAMPDIFF(SECOND, date_time, NOW()) AS time_diff FROM table WHERE ip='$ipa' ORDER BY date_time DESC LIMIT 1";

注意TIMESTAMPDIFF的返回值存储为' time_diff'。您的结果将包含' time_diff'作为一个专栏添加。

有关详细文档,请参阅this page