いつもお世話になっております。
環境/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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- その他(教育・科学・学問) エクセル関数について 2 2022/12/23 08:59
- PHP PHPで訪問回数を表示するカウンタを作成したい 3 2023/05/27 07:09
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- 高校 数学Ⅰの一次関数について。 6 2023/08/15 02:15
- Excel(エクセル) TEXT関数(負の値)を集計のため数値に変換したい 5 2022/05/15 23:04
- Excel(エクセル) excelにて、ある固定値から連番を振りたいが、上限値が異なる連番を振る処理を複数回行いたい場合 6 2022/10/22 11:01
- Excel(エクセル) エクセルで書式設定とフィルタの組み合わせでうまく行かないのですが 4 2022/10/07 10:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
日付を基にした乱数生成
-
if (isset($_a)&&$_a)この意味は
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
-
DTOとEntityの差は何ですか。
-
shシェルスクリプト 空白行の...
-
Excel VBA:特定の文字列以降(...
-
IEを使わないでhtmlテキストを...
-
wordの差し込み印刷で文字...
-
PDOを使った総レコード数(行数...
-
ローカルのコンピュータ名を取...
-
WordでExcelデータを差込...
-
小数点以下0の非表示
-
php 入力画面から確認表示画面...
-
ミュージックのアートワークを...
-
PHPでの画像の形式の変換
-
自動車教習所について 質問 普...
-
ログイン画面から入って、「戻...
-
VBA コレクションに2次元配列...
-
VBS「開いているページ」のURL...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付を基にした乱数生成
-
<A href ~で複数の値を渡したい
-
「次の10件を表示する」のよ...
-
PHPでwait処理ってできます?
-
POSTされたかどうか確かめる方...
-
PHPのif文「POSTしていな...
-
PHPでのNULLの正規表現
-
テーブルに送信ボタンをつける
-
PHP フラグ
-
if文の複数条件。
-
逆順表示したい?
-
if (isset($_a)&&$_a)この意味は
-
PHP ハイパーリンク
-
SQLのデータを分割してブラウザ...
-
Luaにて、and or の組み合わせ...
-
$_SERVER["QUERY_STRING"]の仕...
-
null代入とunset()の違いについて
-
whileループの中でフォーム入力...
-
【UWSC】文字をa~zまで回したい...
-
switch文で2つ以上の変数の値...
おすすめ情報