如何在PHP中获得以秒为单位的时间差异?

时间:2013-11-17 07:16:03

标签: php time

我有一个数据类型为“time”的数据库列存储11:30:45。我已经把这个时间用变量说了

$databasetime = 11:30:45

我想声明一个变量说$currenttime,它将包含刚才的时间。就像它现在的11:33:30和另一个变量,它将包含它们在几秒钟内的差异,如

$timediff = $currenttime - $databasetime;
echo $timediff;

我正在尝试$currenttime = time();,但我没有得到我想要的结果。我想要$timediff = 165但是当我回复时间()时,我得到了一个非常大的价值。

7 个答案:

答案 0 :(得分:1)

<?php
$currentTime = time();
$futureDateTime = new DateTime('11:30:45'); // might want to specify a date and timezone, system TZ by default
$futureTime = $futureDateTime->format('U'); // get unix timestamp
$timeDiff = $futureTime-$currentTime;
?>

答案 1 :(得分:1)

您可以通过以下方式完成此操作:

$databasetime = '11:30:45';
$time1 = strtotime($databasetime);
$time2 = strtotime('now');
$diff = $time2 - $time1;
echo 'your difference: '.date('H:i:s', $diff);

答案 2 :(得分:1)

$datetime1 = new DateTime('10:35:56 2013-11-17');
$datetime2 = new DateTime('10:35:50 2013-11-17');
$interval = $datetime1->diff($datetime2);

echo $interval->m . " Month " .$interval->d ." Days ". $interval->h . " Hours, " . $interval->i." Mintues, ".$interval->s." seconds <br/>"; 

答案 3 :(得分:1)

$databasetime = strtotime('11:30:45');
$curtime      = time();
echo $curtime - $databasetime;

答案 4 :(得分:1)

这是一个简单的例子。

$databasetime = '11:30:45';
$timedif = abs(strtotime('now') - strtotime($databasetime));
echo $timedif; //echos the difference in seconds.

abs仅用于防止您可能想要或可能不想做的数字。

答案 5 :(得分:1)

您使用DateTime'OO'方法直接返回'unix timestamp'整数

<?php
$now = new DateTime('now');
$date = new DateTime('11:30:45');
echo $now->getTimestamp() - $date->getTimestamp();
?>

答案 6 :(得分:0)

我的问题现在解决了。实际上所有答案都是正确的,但问题是由于默认时区。我想要亚洲/加尔各答时区,但默认的欧洲时区阿帕奇正在挑选。这就是为什么我没有得到我想要的结果。

所以,我最终使用下面的代码:

date_default_timezone_set('Asia/Kolkata');
$databasetime = strtotime('11:30:45');
$curtime      = time();
echo $curtime - $databasetime;