スレッド表示 | フラット表示〕 全トピック 922 件中 9 番目 次≫ ≪前

時間計算

created: 2011-04-04 18:07 | modified: 2011-04-06 19:28 | reply: 2

[4400] Re. 時間計算

user: ゆうじ | created: 2011-04-04 23:55
こんばんわ。

コピペしてそのまま実行出来る
必要最少限のコードにしてあると試してもらいやすいですよ。

・テストコード
細かなとこは自分なりに解釈して、
デバッグの echo を書き加えてます。
<?php
$start = '18:00';
$end = '19:30';
$work_time = 90;


$b = date("H:i:s");

//現在時間
$uIn_date = strtotime($b);
echo '$uIn_date: ', $uIn_date, '<br>';

//終了時間
$uOut_date = strtotime($end);
echo '$uOut_date: ', $uOut_date, '<br>';

// 終了時間 - 現在時間
$jitsu = ($uOut_date - $uIn_date);
echo '$jitsu: ', $jitsu, '<br>';

$h = (int)($jitsu /3600); //時間
echo '$h: ', $h, '<br>';

$m=(int)($jitsu % 3600 / 60); //分
echo '$m: ', $m, '<br>';

$kei = sprintf("%02d:%02d", $h, $m);
echo '$kei: ', $kei, '<br>';

if($kei){
$waiting = "残り". $kei."分待ち";
} else {
$waiting = '待機中';
}
echo '$waiting:', $waiting;
?>

・結果
$uIn_date: 1301928081
$uOut_date: 1301913000
$jitsu: -15081
$h: -4
$m: -11
$kei: -4:-11
$waiting:残り-4:-11分待ち

「時間差を求める」という事だけに絞れば
大きい方から、小さい方を引くと、時間差になるので

現在時間 - 終了時間

が適切かと思います。

他にいろいろツッコミどころがあって
どうなれば正解なのかわりませんでした。
ヒントになるかな。

<追記>
$start = '18:00';
$end = '19:30';
$work_time = 90;

後々計算が想定される $start や $end のDB側フォールドは
タイムスタンプ型 か int型のほうが楽じゃないかな。
私ならそうします。

<追記>
おっと、タイムスタンプ型 は日付時刻型の間違い。
Parent: 4399  reply: 4401 返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 922 件中 9 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑