• ベストアンサー

時間の減算

時間の減算をしたいです。 StrTime「07:00:00」の場合、 07:45:00と比較し、それより小さいので、 07:45:00 - 07:00:00 で 00:45:00 と計算させ、 表記させたいのですが、どうしたら良いでしょうか? if ($col['StrTime'] < 074500){ $Str = 074500 - $col['StrTime']; } $body .= "<td>" . $Str . "</td>\n"; という文も作ってみましたが、思うように表示できません。 お力をいただけませんでしょうか? よろしくお願いします。

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

  • ベストアンサー
回答No.2

もっとスマートな方法もあるかもしれませんが、以前、私の書いたプログラムを参考にしてはどうでしょうか?http://okwave.jp/qa5215396.html

mkhkck
質問者

お礼

$str1 = $col["ArrTime"]; $str2 = $col["DepTime"]; datesub($str1,$str2); function datesub($str1,$str2){ print $str1 . " "; print $str2 . " "; $hour = date("H",$str1)*60; print $hour . " "; $minutes = date("i",$str1); print $minutes . " "; $Arr = $hour + $minutes; print $Arr . " "; $hour = date("H",$str2)*60; print $hour . " "; $minutes = date("i",$str2); print $minutes . " "; $Dep = $hour + $minutes; print $Dep . " "; $time = $Arr - $Dep; } と作ってみましたが、 07:35:00 06:30:00 540 00 540 540 00 540 のように、全て、 540 00 540 540 00 540 と表示されてしまいます。

mkhkck
質問者

補足

コメントありがとうございます。 時間や分を秒にするということですよね。 どうやったら、00:00:00から、時間・分・秒を取り出せるでしょうか。。。 取り出し方がわからなく。。。

その他の回答 (1)

  • sykt1217
  • ベストアンサー率34% (277/798)
回答No.1

>思うように表示できません。 どう思うようにいかないのでしょう? 何かしらのエラーで怒られるのですか? 算術が思った結果ではないのですか? また思った結果でなかった場合は、どのような結果がでたのですか? 恐らく $col['StrTime'] これの型が数値型じゃないからだと思いますが・・・。 キャストなどしてもダメですか?

mkhkck
質問者

お礼

function datesub($str1,$str2){ $strs1 = explode(":",$str1); $strs10 = $strs1[0] * 60; $time1 = $strs10 + $strs1[1]; $strs2 = explode(":",$str2); $strs20 = $strs2[0] * 60; $time2 = $strs20 + $strs2[1]; $time = $time1 - $time2; } とすることで、改善されました。 ありがとうございました。

mkhkck
質問者

補足

コメントありがとうございます。 $Strが310540というような数で表示されます。 00:45:00と表示させたいのですが。。。 最終的には、0.75と表示できればと思っています。

関連するQ&A