
いつもお世話になっております。
環境/PHP5
<?php
//開始時刻を記録
$start_time = microtime();
//ユーザ定義関数
user_function($arg);
//終了時刻を記録
$end_time = microtime();
//時刻差を求め、ユーザ定義関数の処理にかかった時間を求めたい
$dif_time = $end_time - $start_time;
//求めた数値を出力
echo $dif_time;
//関数の定義
function user_function($arg){
~処理定義~
}
?>
上記スクリプトの出力結果が、
マイナスの値だったり、プラスの値だったりするのですが、
それはなぜなのでしょう?
-0.238105
だったり、
0.708105
だったりします。
プラスの値で、数字が上下するならまだしも、
値がマイナスになる意味がわかりません。笑
軽くバックトゥザフューチャーしちゃってるのでしょうか。
ともかく、すごく、あてにならない感じなのです。
microtime関数は、結構イイカゲンな仕様なのでしょうか?
No.1ベストアンサー
- 回答日時:
引数にtrueを追加して再チャレンジしてください。
---引用----------------------------------
オプション引数を付けずにコールされた場合、この関数は文字列 "msec sec" を返します。ただし、sec は Unix エポック (1970 年 1 月 1 日 0:00:00 GMT) から計算した秒数、msec はマイクロ秒の部分です。 文字列のそれぞれの部分は秒単位で返されます。
------------------------------------------
尚、PHPマニュアルは、
http://jp2.php.net/{関数名}
とURLを叩けば説明が出てきます。
ついでに下のほうに、ユーザの投稿もかなり参考になるので、
もし挙動がおかしいことがあったらまずは引数とか確認してみましょう。
私はstrposやarray_searchの引数順が覚えられなくてヘビーローテでこの二つを検索してます(笑)
まったくお恥ずかしい。苦笑
自分に言いたいです。
「ちゃんと、PHPマニュアルを読もうよ」と。苦笑
ということで、読んできました。
方法としては、hogehoge78さんが書かれていた「true」を使う方法と
$array = explode(" ",microtime());
$start_time = $array[0] + $array[1];
とする方法とがあるみたいですね。
結果はどちらも同じようですが、trueの方が楽ちんですね。
>http://jp2.php.net/{関数名}
!!
良いことを知りました。笑
>strposやarray_searchの引数順が覚えられなくてヘビーローテ
あ~、私は最近、
sqlite_query()の引数には順番がない事を知り、愕然としました。笑
引数を前後逆にしても、問題なく動くのでした。
No.2
- 回答日時:
microtime()の返す値を誤解しているからでは?
"マイクロ秒 秒"
のマイクロ秒部分同士だけ引くと、プラスだったりマイナスだったりして当然です。秒部分も引かないと。
はい~、よく分かりました^^
>マイクロ秒部分同士だけ引くと、プラスだったりマイナスだったりして当然
符号が逆になる意味も、よく分かりました。
それを踏まえ、再挑戦してみた所、数字がマイナスになることはなくなりましたが、
平均して、0.896732091904くらいだった数字が、
突然、上がることがあるんですよね…。
5.746732091904
くらいに。爆
排水口に毛でも詰まっているのでしょうかね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<A href ~で複数の値を渡したい
-
テーブルに送信ボタンをつける
-
「取得先」という表現について
-
Dosブロンプトでtabを出力したい
-
IPアドレスとMACアドレスを取得...
-
【C#】DataGridViewの最大列数...
-
excel access連携 このテーブル...
-
format関数について
-
バッチファイルでpingの結果を...
-
DTOとEntityの差は何ですか。
-
Windowsのsetコマンドでの小数...
-
PHPを使って、別サイトの一部を...
-
findstrのerrorlevel
-
asp.netでのセッションを使用し...
-
shシェルスクリプト 空白行の...
-
php history.back()の戻るボタ...
-
VBA コレクションに2次元配列...
-
表示している画面サイズの取得方法
-
二重ログイン管理について
-
コンビニで住民票を取得した場...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
printの出力結果を変数に代入す...
-
以下のプログラムで質問します。
-
whileループの中でフォーム入力...
-
はじめまして。
-
関数の実行ができません
-
phpスクリプトについて
-
PHPで変数についての質問です
-
【PHP】条件が一致したとき...
-
WEB経由のPHPによるSQLServer接...
-
「次の10件を表示する」のよ...
-
関数戻り値が連想配列の場合
-
文字列の比較がうまくいきません。
-
CGIで何%の指示の仕方
-
テーブルに送信ボタンをつける
-
以下エラーメッセージ解決法は
-
日付の比較について
-
$_SERVER["QUERY_STRING"]の仕...
-
PHPの質問です : -> 等
-
「#表を定義し外枠サイズ2を定...
-
郵便番号と一致するか調べるプ...
おすすめ情報