Php MYSQL中时间戳和正常日期的日期差异

Php MYSQL中时间戳和正常日期的日期差异,php,mysql,datetime,Php,Mysql,Datetime,我有一个表有两个日期列,一个是时间戳值(例如1359380165),另一个是正常日期时间值(例如2013-01-28 08:32:53) 我想找出从现在(当前)到上面列出的这些日期之间的时间间隔。因此,结果将是eg 丹尼尔5分钟前更改了密码 杰尼弗30天前删除了她的电话号码 有什么想法吗?这个函数应该做一些与您所追求的类似的事情,尝试一下,它只需要像您的“1359380165”一样传递一个unix时间戳 function getRelativeTime($timestamp) { $ti

我有一个表有两个日期列,一个是时间戳值(例如1359380165),另一个是正常日期时间值(例如2013-01-28 08:32:53)

我想找出从现在(当前)到上面列出的这些日期之间的时间间隔。因此,结果将是eg

  • 丹尼尔5分钟前更改了密码
  • 杰尼弗30天前删除了她的电话号码
    有什么想法吗?

    这个函数应该做一些与您所追求的类似的事情,尝试一下,它只需要像您的“1359380165”一样传递一个unix时间戳

    function getRelativeTime($timestamp)
    {
        $timeDifference = time() - $timestamp;
        $timePeriods    = array('second', 'minute', 'hour', 'day', 'week','month', 'years', 'decade');
        $timeLengths    = array('60', '60', '24', '7', '4.35', '12', '10');
    
        if ($timeDifference > 0)
        {
                $timeSuffix = 'ago';
        }
        else
        {
            $timeDifference = -$timeDifference;
            $timeSuffix     = 'to go';
        }
    
        for($i = 0; $timeDifference >= $timeLengths[$i]; $i++)
        {
            $timeDifference/= $timeLengths[$i];
            $timeDifference = round($timeDifference);
        }
    
        if($timeDifference != 1) $timePeriods[$i].= 's';
    
        return $timeDifference . ' ' . $timePeriods[$i] . ' ' . $timeSuffix;
    }
    

    假设这样一张表:

    SELECT id, username, FROM_UNIXTIME(utime, '%Y-%m-%d %H.%i.%s') AS ut, dtime AS dt FROM mytable;
    
    空白表 为什么不直接构造查询,让PHP以相同的格式接收两个时间戳呢?大概是这样的:

    SELECT id, username, FROM_UNIXTIME(utime, '%Y-%m-%d %H.%i.%s') AS ut, dtime AS dt FROM mytable;
    

    然后可以用相同的方法处理ut和dt

    有一个很好的相对时间函数。它需要一个unix时间戳

    SELECT id, username, utime AS ut, UNIX_TIMESTAMP(dtime) as dt FROM mytable;