1

SQL 関数 TIMEDIFF() と同じことを行う PHP 関数はありますか?

これが私のコードです:

$to_time = array_search( 'time2.Time', $aCols );
$from_time = array_search( 'time1.Time', $aCols );
$value= ;  

この形式で値を取得する必要がありますHH:MM:SS

私はこのバージョンを使用しています:PHP 5.2.17

4

4 に答える 4

1

PHP 5.3 以降を使用している場合は、次のコードを使用できます。

$to_time = new DateTime(array_search( 'time2.Time', $aCols ));
$from_time = new DateTime(array_search( 'time1.Time', $aCols ));
$interval = $date1->diff($date2);
$value = $interval->format('%H:%i:%s');

または5.3より前は、次のようなものを試してください:

$date1 = strtotime("2012-09-13 12:14:24.453");
$date2 = strtotime("2012-09-15 14:21:28.453");
$interval = $date2 - $date1;
$seconds = $interval % 60;
$minutes = floor(($interval % 3600) / 60);
$hours = floor($interval / 3600);
echo $hours.":".$minutes.":".$seconds;

http://codepad.viper-7.com/b9b0L5

于 2012-10-06T16:49:13.430 に答える
0

あなたが試すことができます

$dattTime = new DateTime();
$dateTime2 = new DateTime("2012-09-11 10:25:00");


$interval = $dattTime->diff($dateTime2);
var_dump($interval->format('%H:%i:%s'));



$hours = $interval->h + ($interval->d*24);
var_dump("Total Hours: " . $hours . " hrs");  

出力

string '08:17:15' (length=8)
string 'Total Hours: 608 hrs' (length=20)
于 2012-10-06T16:39:32.857 に答える
0

strtotime()値をタイムスタンプに変換する必要がある場合に使用し (これはすでに理想的である必要があります)、2 つを差し引くだけです。

于 2012-10-06T16:41:25.570 に答える
0

"H:i:s" 形式で時間を取得し、開始日を 00:00:00 に保つ strtotime() で簡単に

   <?php
    $origin   = '00:00:00';
    $fromTime = '00:16:00'; // $fromTime = date('H:i:s',strtotime($from_time))
    $toTime = '00:45:00';  //// $toTime= date('H:i:s',strtotime($to_time))

    $diff = (strtotime($toTime) - strtotime($fromTime)) + strtotime($origin);

    echo date('H:i:s', $diff );

出力: 00:29:00

于 2012-10-07T07:49:00.080 に答える