電子書籍の厳選無料作品が豊富!

はじめまして。PHP初心者です。

PHPでミリ秒までの足し算・割り算のやり方がわかりません。

やりたいことは、
5分30秒205+5分30秒205

また、
5分30秒205/2

などの計算の仕方がしりたいです。

質問者からの補足コメント

  • 連絡ありがとうございます。

    1.ミリ秒は常に3桁ですか。
    常に3桁を想定しています。

    2.時もしくは時間がつくケースもありますか。
    時はつきません。

    3.結果が60分以上の場合、時間に繰り上げますか。
    60分未満を想定しています。

      補足日時:2022/02/18 22:58

A 回答 (3件)

補足要求です。


1.ミリ秒は常に3桁ですか。
5分30秒2
5分30秒12345
のようなケースもありますか。

2.時もしくは時間がつくケースもありますか。
2時3分2秒300
2時間3分2秒300
ある場合は、時ですか時間のどちらでしょうか。

3.結果が60分以上の場合、時間に繰り上げますか。
45分0秒000+45分0秒000の結果は
90分0秒000、
1時間30分0秒000のどちらですか。
    • good
    • 0
この回答へのお礼

計算できました。ありがとうございました。

お礼日時:2022/02/19 09:06

まず


・時刻表現された文字列→合計ミリ秒
・合計ミリ秒→時刻表現された文字列
の変換関数を用意する。

合計ミリ秒(数値)にしてしまえば、普通に計算できる。

5分30秒205/2

合計ミリ秒("5分30秒205") / 2

((5*60 + 30)*1000+205)/2

文字列から各要素の数値を取り出すのなら、
https://www.php.net/manual/ja/class.datetime.php
https://www.php.net/manual/ja/class.dateinterval …
を活用する方法もある。
    • good
    • 0

一旦、文字の時刻をミリ秒単位の数値に変換し、


それに対して計算を行い、そのあと、文字の時刻に変換すればよいかと。
以下は
①"25分17秒325"と59分17秒999を加算
②"25分17秒325"を2で割り算
のサンプルです。
str2mtimeが文字の時刻をミリ秒に変換します。
mtime2strがミリ秒を文字の時刻に変換します。
実行結果
84分35秒324
12分38秒662

ーーーーーーーーーーーーーーーーーーーーーーーーー
function str2mtime($str)
{
$ret = preg_match('/^(\d+)分(\d+)秒(\d\d\d)$/',$str,$regist);
if ($ret != 1) return(0);
$stime = $regist[1] * 60 + $regist[2];
$mtime = $stime * 1000 + $regist[3];
return($mtime);
}
function mtime2str($mtime)
{
$tsec = intval($mtime / 1000);
$min = intval($tsec/60);
$sec = $tsec % 60;
$msec = $mtime % 1000;
$str = sprintf('%d分%d秒%03d',$min,$sec,$msec);
return($str);
}
$mtime1 = str2mtime("25分17秒325");
$mtime2 = str2mtime("59分17秒999");
$mtime3 = $mtime1+$mtime2;
$str = mtime2str($mtime3);
echo $str,"\n";
$wtime = $mtime1/2;
$str = mtime2str($wtime);
echo $str,"\n";
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!