1
<?php
    $ts='2011-04-13 23:00:00';
    $ts1='2011-04-14 15:45:00';
    echo $addtime = date("h:i:s", mktime(date("h", $ts1)- date("h", $ts),date("i", $ts1)- date("i", $ts),date("s", $ts1)- date("s", $ts),0,0,0));
?>

結果は出ますが、多くの場合正しくありません。どうすれば修正できますか?

4

1 に答える 1

2

与えられた例では、期待される結果は16:45:00になりますよね?したがって、指定された2つの日付の差を時間:分:秒で指定します。

<?php
    //initial strings
    $ts='2011-04-13 23:00:00'; 
    $ts1='2011-04-14 15:45:00';

    //converting to time
    $start = strtotime($ts);
    $end = strtotime($ts1);

    //calculating the difference
    $difference = $end - $start;

    //calculating hours, minutes and seconds (as floating point values)
    $hours = $difference / 3600; //one hour has 3600 seconds
    $minutes = ($hours - floor($hours)) * 60;
    $seconds = ($minutes - floor($minutes)) * 60;

    //formatting hours, minutes and seconds
    $final_hours = floor($hours);
    $final_minutes = floor($minutes);
    $final_seconds = floor($seconds);

    //output
    echo $final_hours . ":" . $final_minutes . ":" . $final_seconds;
?>

これで正しい結果が得られます。私があなたの問題を正しく理解したことを願っています!

于 2012-11-20T09:47:00.030 に答える