2016-09-13 4 views
2

私は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; 
+2

良い質問です。なぜマイクロタイムですか? –

+0

良い質問ですが、それについて考えなかったので、私はそれを使いました。 – DS9

+1

あなたはそれを使用せず、単に 'time()'から秒を使用できますか? –

答えて

1

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; 
+0

$ starttime変数に15分分のマイクロタイム(真)を追加します。あなたの答えが私の質問にどのように対処しているかわかりません。 – DS9

1

はこれを試してみてくださいmicrotime()によって提供の

$endtime = $starttime + 15*60*1000;

+0

スタートタイムで* 1000の背後にある理由は何ですか? – DS9

+0

秒からミリ秒 –

3

値は秒単位です。だから、単純に実行する必要があります。

$endtime = $starttime + 15*60; 
+0

私はmicrotime(true)を使用しているので、浮動小数点値を返します。だから私は分、秒に変換する場合は、それは問題を作成します。 – DS9

+0

私はあなたの問題を全く理解していません。あなたは何をしたいのですか?あなたはどの問題を期待していますか? –

+0

私は質問を更新しました。 – DS9

2

注意返されたタイムスタンプがない「マイクロ秒」、「マイクロ秒で」であること。これは、パラメータとして 'true'を渡して、2つの浮動小数点値の差を計算すると、結果が秒単位で表示されることを知るのに特に便利です。百万分の一に分割する必要はありません。

<?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); 

?> 

Check here

関連する問題