9

数時間前から答えを探していましたが、見つかりません。

私は簡単なを書いていscriptます。ユーザーは作業の開始時間と終了時間を設定します。したがって、たとえば、誰かが8:00から16:00まで働いています。この時間を差し引いて、その人がどれだけ長く働いているかを確認するにはどうすればよいですか?

私は実験してstrtotime();いましたが、成功しませんでした...

4

3 に答える 3

29

もう少し良いのは次のとおりです。

$ a = new DateTime( '08:00');
$ b = new DateTime( '16:00');
$ interval = $ a-> diff($ b);

エコー$interval->format( "%H");

それはあなたに時間の違いを与えるでしょう。

于 2011-03-28T18:51:08.370 に答える
9

有効な日付文字列を取得した場合は、次を使用できます。

$workingHours = (strtotime($end) - strtotime($start)) / 3600;

これにより、人が働いている時間がわかります。

于 2011-03-28T18:47:34.690 に答える
2

もう1つの解決策は、Unixタイムスタンプの整数値の差(秒単位)を調べることです。

<?php
    $start = strtotime('10-09-2019 12:01:00');
      $end = strtotime('12-09-2019 13:16:00');

      $hours = intval(($end - $start)/3600);
      echo $hours.' hours'; //in hours

      //If you want it in minutes, you can divide the difference by 60 instead
      $mins = (int)(($end - $start) / 60);
      echo $mins.' minutues'.'<br>';
?>

元の日付がUnixタイムスタンプ形式で保存されている場合は、このソリューションの方が適しています。

于 2019-09-23T14:23:42.113 に答える