PHP中的Python time.time()

2024-09-28 22:18:58 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中time.time()将与当前时间关联的时间戳返回到小数点后6位,在PHP中microtime(true)将当前时间返回到小数点后4位。有没有办法用PHP将当前时间设置为小数点后6位?谢谢

Python:1632816181.314063

菲律宾比索:1632816181.3140


Tags: truetime时间php办法小数点比索microtime
2条回答

你能试试吗?我认为这一款符合你的要求。

<?php 
    $now = DateTime::createFromFormat('U.u', microtime(true));
    $timestamp = $now->getTimestamp();
    echo $data = $timestamp.".".$now->format("u");
    
    // Result :- 1632823152.201900
    
    ?>

我的印象是,PHP中的浮点数在默认情况下使用echoprint命令显示,而不使用您想要的所有小数

printf()sprintf()%f说明符一起使用,并添加您想要的位数。在您的情况下,6位数字将是%.6f

<?php

// Save the floating-point Unix timestamp just for comparing below.
$microtime = microtime(true);

echo 'echo $microtime            : ' . $microtime . "\n";
printf("printf(\"%%.6f\", \$microtime) : %.6f\n", $microtime);

// Some have proposed to create a DateTime instance.
$datetime = DateTime::createFromFormat('U.u', $microtime);
echo "DateTime::format('U.u')    : " . $datetime->format('U.u') . "\n";

这将产生以下结果:

echo $microtime            : 1632834055.1038
printf("%.6f", $microtime) : 1632834055.103771
DateTime::format('U.u')    : 1632834055.103800

正如你所看到的,这看起来很奇怪,但是PHP的DateTime类在某种程度上降低了过程中的精度。生成的u格式的末尾似乎用零填充

Test the PHP code here

相关问题 更多 >