经过相当多的挖掘后,我发现计算结果是根据真空中光速标记的速度在空间中进行时间膨胀。
我正在使用地球自转基地(将考虑以后的地球速度),作为向上转换为光年时间的起始编号。
我写的代码如下:
$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
是真空中的光速(米/秒)
86164.098903691
是完整旋转的确切秒数
它的轴(也就是一个地球日 - 不要混淆
太阳日,根据太阳和月亮的距离而波动。
参考:国际地球自转和参考系统
服务。
公式是从这里转换到php>> http://www.phy.olemiss.edu/HEP/QuarkNet/time.html<<这似乎准确地代表了基于速度的时间膨胀。
我遇到此问题的问题是我收到以下错误::
[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";
答案 0 :(得分:3)
^
是PHP中的按位xor运算符,而不是指数运算符
使用
pow($lightspeed*299792458,2)
和
pow(299792458,2)
代替