我已经搜索过,我有太多的试验/错误,但没有运气。所以这就是:
我想知道自从使用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'];)
但没有运气。
有帮助吗?
提前谢谢。
答案 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。