• ベストアンサー

PHPによる時間計算

PHP時間計算 strtotime()関数を使った場合「00:00:00」「24:00:00」~「33:00:00」を解釈できないようで 戻り値がありません。 24時間勤務の場合に9時から翌朝9時までのとき9時から33時として計算したいのですが なにか良い方法はありますでしょうか? AM9時から翌AM1時の場合は 9時から25時 25時-9時=16時 と言った感じの計算が私の知識レベルでは出来ませんでした。 どぞう、お知恵を拝借できればと思います。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

確実に、hh:mm:ss の形式で渡されるとわかっているなら(計算より前にチェックしているのなら)下記の用に書いていいんじゃないですかね <?php $from = '9:00:00'; $to = '25:00:00'; print sectostr(strtosec($to) - strtosec($from)); function strtosec($str) { list($h, $m, $s) = explode(':', $str); return $h * 3600 + $m * 60 + $s; } function sectostr($val) { return sprintf("%02d:%02d:%02d", $val / 3600, ($val % 3600) / 60, $val % 60); }

hogehoge2011
質問者

お礼

有難う御座います。まさしく私のやりたかった事です。 行き詰っていたので、感謝です!! 本当に有難う御座いました。 ご回答下さった方々もご助力有難う御座いました。

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.2

入力値を時刻として扱うのでは無く数値として計算するか、日付の概念を加え 2012/9/18 9:00:00 ~ 2012/9/19 9:00:00 として入力して差を計算するといった方法がいいのではないでしょうか。

関連するQ&A