質問: phpのmicrotime()について質問ですが、PHPマニュアルによると 引数に真偽値を指定しなければ1970年1月1日から今この瞬間までの時間を秒数にした値とそれをマイクロ秒にした秒数を一緒に表示し、trueを引数に与えれば浮動小数点数で返すそうです。 ここでいくつか質問があります 1 引数に何も指定しなかったときに表示される「マイクロ秒 秒」のマイクロ秒は、PHPマニュアルによれば > > msec は sec から経過したマイクロ秒数を秒単位で表したものです。 > > > とあります。例えば今、関数を実行すると「0.26299500 1505382259」となります。 マイクロ秒数というから「マイクロ秒 秒」の秒の部分を10^6で乗算したものだと思っていたのですが、関数を実行して分かる通り違います(1.505382259e+15マイクロ秒)。この「0.26299500」という小数点の塊についてPHPマニュアルなどを参照してもよく理解できません。0.26299500とはいったい何なのでしょうか。引数に真偽値を渡すと秒のあとの小数点の数字が0.26299500となります。しかし、これでもよくわかりません。 2 PHPマニュアルにおいてですが、マイクロ秒は、μsなのになぜmsecと表示するのでしょうか。μsecではダメな理由があると思うのですがそれは何なのでしょうか。
回答: 1について、microtime()はUNIXTIMEをマイクロ秒まで返す関数です。 引数がfalseの場合は、2つの数値のうち後者が秒単位のUNIXTIMEで、 前者はマイクロ秒単位まで出力された1秒未満の経過秒数です。 足し合わせると関数実行時点のマイクロ秒単位でのUNIXTIMEとなります。 引数がtrueの場合は、上記の2つの値を足しあわせて小数で返却しますが、 精度が問題になる場合があります。 下記のように出力すると、実行時は秒数の部分が同じになりました。 ```