-1

作業時間を計算しようとする次のコードがあります。時間と分が常にゼロを返すという点で少し問題があります。私の最善の推測では、新しい DateTime と関係があるのですが、これを修正する方法がわかりません。

<?php
include_once 'db_connect.php';
include_once 'psl-config.php';
include_once 'functions.php';

$error_msg = "";

sec_session_start();

//Get Username from session id
$username =  htmlentities($_SESSION['username']);

//get time date stamp
date_default_timezone_set('America/Chicago'); //set default timezone, just to be sure


//GET Last Clockin from timesheet table
$result = $mysqli->query("SELECT lastclockin FROM timesheet WHERE username = '$username'");
$number_of_rows =  $result->num_rows;

while ($row = mysqli_fetch_assoc($result)) {
        $lastclockin = $row["lastclockin"];
    }
    echo $lastclockin;
    echo "<br />";

    $now = new DateTime();

    $diff = $now->diff(new DateTime($lastclockin));

$hours = $diff->h;
$minutes = $diff->m;
$hours = $hours + ($diff->days*24);

echo $now->format('Y-m-d H:i:s');
echo "<br />";

echo $hours;
echo "<br />";
echo $minutes;
echo "<br />";
?>

結果は次のとおりです。

2014-09-11 13:02:15
2014-09-11 13:47:34
0
0
4

1 に答える 1

3

2 つの時間の差が 0 時間であるため、これは理にかなっています。ここでゼロより大きい値を確認するには、さらに離れた 2 つの時間を使用してテストする必要があります。

mが月の識別子であるため、分が正しくありません。i分です。

$minutes = $diff->i;
于 2014-09-11T18:57:07.347 に答える