Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 微秒,小数点为2_Php_Microtime - Fatal编程技术网

Php 微秒,小数点为2

Php 微秒,小数点为2,php,microtime,Php,Microtime,我试着用2个小数计算一个动作的秒时间 protected function microtimeFormat($data) { $duration = microtime(true) - $data; $hours = (int)($duration/60/60); $minutes = (int)($duration/60)-$hours*60; return $seconds = $duration-$hours*60*6

我试着用2个小数计算一个动作的秒时间

protected function microtimeFormat($data)
    {
        $duration = microtime(true) - $data;
        $hours = (int)($duration/60/60);
        $minutes = (int)($duration/60)-$hours*60;
        return $seconds = $duration-$hours*60*60-$minutes*60;

    }
这个方法以$data的形式获取开始时间…并以整数秒的形式返回它

例如,它返回2秒

我试着用2个小数点获得秒

protected function microtimeFormat($data,$format=null,$lng=null)
    {
        $duration = microtime(true) - $data;
        $hours = (float)($duration/60/60);
        $minutes = (float)($duration/60)-$hours*60;
        $seconds = $duration-$hours*60*60-$minutes*60;
        return number_format((float)$seconds, 2, '.', '');
    }

但是它在短时间内返回0.00,我认为您的问题来自
(浮动)
$hours
$minutes
的转换。执行此操作时,不会保存每个的小数部分,因此
$seconds
的计算结果始终为0。转换为
int
,这样您就可以在
$hours
$minutes
中实际保存它们各自代表的秒数。剩下的部分转到
$seconds

protected function microtimeFormat($data,$format=null,$lng=null)
{
    $duration = microtime(true) - $data;
    $hours = (int)($duration/60/60);
    $minutes = (int)($duration/60)-$hours*60;
    $seconds = $duration-$hours*60*60-$minutes*60;
    return number_format((float)$seconds, 2, '.', '');
}

$start = microtime(TRUE);
sleep(1);
$delay = $this->microtimeFormat($start);
var_dump($delay);
这给了我:

string(4) "1.01"

我使用此表单以秒为单位生成时间,例如1.20

$start = microtime(true);
for ($i=0; $i < 10000000; $i++) { 
    # code...
}
$end = microtime(true);

echo "<br>" . $time = number_format(($end - $start), 2);
// We get this: 1.20
$start=microtime(真);
对于($i=0;$i<10000000;$i++){
#代码。。。
}
$end=微时间(真);
回声“
”$时间=数字格式($end-$start),2; //我们得到这个:1.20
比较PHP两个函数性能的示例:

define( 'NUM_TESTS', 1000000);

$start = microtime(true);

for( $i = 0; $i < NUM_TESTS; $i++)
{
    mt_rand();
}

$end = microtime(true) - $start;
echo 'mt_rand: ' . number_format(($end), 2) . "\n";

$start = microtime(true);

for( $i = 0; $i < NUM_TESTS; $i++)
{
    uniqid();
}

$end = microtime(true) - $start;
echo 'uniqid: ' . number_format(($end), 2) . "\n";
// We get this: mt_rand: 0.12 uniqid: 2.06
define('NUM_TESTS',1000000);
$start=microtime(真);
对于($i=0;$i
使用PHP的round函数:我尝试了你的代码,收到了2.0001289844513和2.00-如果我睡眠(70),这些是秒数和数字格式的结果我得到的结果是:
string(5)“10.00”
我是php新手,不是编程新手。虽然您的代码对我来说非常有用,但这种代码是人们谈论PHP的原因。无论如何谢谢你