我有一个数据类型为“time”的数据库列存储11:30:45。我已经把这个时间用变量说了
$databasetime = 11:30:45
我想声明一个变量说$currenttime
,它将包含刚才的时间。就像它现在的11:33:30和另一个变量,它将包含它们在几秒钟内的差异,如
$timediff = $currenttime - $databasetime;
echo $timediff;
我正在尝试$currenttime = time();
,但我没有得到我想要的结果。我想要$timediff = 165
但是当我回复时间()时,我得到了一个非常大的价值。
答案 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;