【问题标题】:How to get the total hour from starting time to end time in php如何在php中获取从开始时间到结束时间的总小时数
【发布时间】:2013-08-09 13:26:19
【问题描述】:

如何获取从开始时间到结束时间的总小时数。

   $start_time = '11:00:00 PM'; // as of 07/08/2013
   $end_time   = '01:00:00 AM'; // as of 08/08/2013

那么输出应该是:

   $total = '02:00:00'; // 12 hour format

【问题讨论】:

  • 此链接可能有您正在寻找的解决方案:stackoverflow.com/questions/5463549/subtract-time-in-php
  • Date::diff 不准确。当我有上面给出的它给我错误的输出
  • 您是否仅限于提供小时数?如果您可以提供日期和时间,那么它将输出您正在寻找的结果。例如:echo date_create('07/08/2013 11:00:00 PM')->diff(date_create('08/08/2013 01:00:00 AM'))->format('%h');
  • 是的。我只使用 timepicker 不包括日期。

标签: php datetime time


【解决方案1】:

您可以将日期字符串转换为时间值,然后减去以获得两者之间的秒数差,然后只需除以 3600 即可获得小时数差:

$t1 = strtotime('2013-08-07 23:00:00');
$t2 = strtotime('2013-08-08 01:00:00');
$differenceInSeconds = $t2 - $t1;
$differenceInHours = $differenceInSeconds / 3600;

【讨论】:

  • 我只使用时间选择器,输入字段中不包含日期。
  • 有这个给定$start_time = 11:00:00 PM 和$end_time = 01:00:00 AM。它给了我 -22 的输出
  • OK,在最后添加这一行: if($differenceInHours
  • 如果我想要 12 小时格式“HH:mm:ss”怎么样?不仅是小时。 + 1
  • 添加这一行(在上一行之后): $total= $differenceInHours 。 ":00:00";
猜你喜欢
  • 1970-01-01
  • 2023-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-03
  • 1970-01-01
  • 2021-09-06
相关资源
最近更新 更多