2

テーブル CalTime には、Time データ型の列 Timespent があります。値を HH:MM:SS 形式で格納します。この列の値を合計する方法を提案してください。

   Timespent
    _______
    00:07:00
    01:05:00
    00:49:00

この02:01:00のように合計を印刷したい。

PHPを使用してこれに代わるものがあるのだろうか..

PS:私はphpでそれをやってみました.strtotimeを使って各列の値(whileループ内)をタイムスタンプに変換し、それらを追加してdate('H:i:s')を使ってHH:MM:SSとして必要な形式に変換し直しました. . それはうまくいかないようです。コードは次のようになります。

     <?php   while(...)
      {
      $ts += strtotime($timeCal['timespent']);
      } ?>
4

2 に答える 2

3

数秒で変換し、合計してから時間に戻します。

SELECT  SEC_TO_TIME( SUM( TIME_TO_SEC( `timespent` ) ) ) AS timeSum  
FROM CalTime
于 2013-09-20T19:00:11.870 に答える
1

このための簡単な機能を次に示します。配列内の値をループして、以下のコードに追加し続けることができます。

//Incase strtotime gives any errors
date_default_timezone_set('America/New_York');
//
$mytime1 = "00:07:00";
$mytime2 = "01:05:00";
$secs = strtotime($mytime2)-strtotime("00:00:00");
$result = date("H:i:s",strtotime($mytime1)+$secs);

ループ内の疑似コードの例。
mysql の結果を php 配列で返す

$mytime1 = $myTimeArray[0]; 
$result = 0;

for($i=0;i<sizeOf($myTimeArray;$i++)) {
   $secs = strtotime($mytime[$i])-strtotime("00:00:00");
   $result + = date("H:i:s",strtotime($mytime1)+$secs);
}
于 2013-09-20T19:16:50.503 に答える