在做了相当多的挖掘之后,我发现了基于真空中光速标记的速度在空间中得到时间膨胀的计算。
我正在使用地球自转基座(稍后将计算地球速度),作为向上转换为光年时间的起始数。
我所写的代码如下:
$now = (time() / 86164.098903691);
echo 'Days: ' . $now;
echo 'Lightspeed: ' . dilation(0.95, $now);
function dilation($lightspeed, $elapsed) {
$t = $elapsed/(((1-($lightspeed*299792458)^2)/(299792458^2))^0.5);
return $t;
}基本上,数字如下:
299792458是真空中光速(m/秒)。86164.098903691是地球在它的轴上完全自转的精确秒(也就是地球上的一天--不要把它与太阳和月亮的距离波动的太阳日混淆起来)。参考资料:国际地球自转和参考系统处。该公式是从>> http://www.phy.olemiss.edu/HEP/QuarkNet/time.html <<转换为php的公式,它似乎准确地表示了基于速度的时间膨胀。
这段代码的问题是,我得到了以下错误:
[Sun Apr 13 18:47:39.413743 2014] [:error] [pid 3028:tid 1328] [client 127.0.0.1:60754] PHP Warning: Division by zero in C:\\server\\www\\127.0.0.1\\htdocs\\test.php on line 31然而,还不清楚为什么所有变量似乎都要考虑在内。你能指出为什么会发生这种情况吗?
附录
以下代码不返回任何错误--
$time = time();$now = ($time / 86164.098903691);
$lightspeed = 0.95;
//echo ($lightspeed*299792458)^2;
$speed1 = (1-(($lightspeed*299792458)^2));
$speed2 = ((299792458^2)^0.5);
$dilation = ($now/($speed1/$speed2));
echo 'Unix: ' . $time . "\n";
echo 'Days: ' . $now . "\n";
echo 'Speed1: ' . $speed1 . "\n";
echo 'Speed2: ' . $speed2 . "\n";
echo 'Dilation: ' . $dilation . "\n";发布于 2014-04-13 23:12:07
^是PHP中的位xor运算符,而不是指数运算符。
使用
pow($lightspeed*299792458,2)和
pow(299792458,2)相反,
https://stackoverflow.com/questions/23049499
复制相似问题