我有一个包含microtime(true)
值的会话。像下图:
Yii::app()->user->setState('portal_logged_time', microtime(true));
现在我想在上面的会话中增加15分钟,但它应该保持在微时间。
$starttime = Yii::app()->user->getState('portal_logged_time');
// Now i want to add microtime of 15 minutes into $starttime
$endtime = // i want to do something like this ($starttime*15*60);
我已经试过了,但它不工作$starttime*15*60
。
那么如何实现呢?
之后,我试图获取剩余的分钟和秒:
$duration = $endtime-$starttime;
$hours = (int)($duration/60/60);
$minutes = (int)($duration/60)-$hours*60;
$seconds = (int)$duration-$hours*60*60-$minutes*60;
microtime()
提供的值以秒为单位。因此,您应该简单地执行:
$endtime = $starttime + 15*60;
注意,返回的时间戳是"with microseconds",而不是"in microseconds"。如果你传递'true'作为参数,然后计算两个float值之间的差值,这是特别好的——结果已经在秒内;它不需要除以一百万。
<?php
$temp = microtime(true);
echo "$temp";
echo "<br>";
echo date('Y-m-d h i s', $temp);
$sum = round($temp) + 900;
echo "<br>";
echo date('Y-m-d h i s', $sum);
?>
这里的检查
像这样:
echo date("H:i:s",$endtime-$starttime);
手动:$duration = $endtime-$starttime;
$hours = (int)($duration/60/60);
$minutes = (int)($duration/60)-$hours*60;
$seconds = (int)$duration-$hours*60*60-$minutes*60;
试试这个:
$starttime = round(microtime(true) * 1000);
$endtime = $starttime + 15*60*1000;