【问题标题】:How to count how many hours inside an hour range?如何计算一个小时范围内有多少小时?
【发布时间】:2014-09-29 03:53:51
【问题描述】:

你能帮我解决这个问题吗?

我正在创建一个活动策划者,并且我有一个包含小时范围的函数。例如,我有一个活动 BIRTHDAY,这个活动从 13:15:00 开始到 18:30:00。现在如何计算这个范围内的小时数?

我有这样的代码:

<?php

$start = "13:15:00";
$end = "18:30:00";

$time = strtotime($start);
$timeStop = strtotime($end);

//how can I count the hours inside?

?>

【问题讨论】:

    标签: php time


    【解决方案1】:

    在这种情况下,您可以使用gmdate()

    $time = gmdate('H:i:s', $timeStop - $time); // feed seconds
    echo $time;
    

    或者也可以使用DateTime 类:

    $time = new DateTime($start);
    $timeStop = new DateTime($end);
    $diff = $timeStop->diff($time);
    echo $diff->format('%h:%i'); // hours minutes
    

    【讨论】:

    • 哇它好用。感谢您的快速回复。我真的不知道这段代码.. :)
    • 但是如果我需要包括时间的开始和结束呢?
    • @itsmejodie 是的,OP 可以选择只使用 -&gt;h 属性,我只是格式化了它,也许 OP 也可能使用分钟
    • @Jerielle datetime 类是 PHP 中的内置类,php.net/manual/en/class.datetime.php。你能澄清一下吗? include the start and end of the time?不是$start$end
    【解决方案2】:
    <?php
    
    $start = "13:15:00";
    $end = "18:30:00";
    
    $time = strtotime($start);
    $timeStop = strtotime($end);
    
    //To count hours in the range
    $diff = intval(($timeStop - $time)/3600);
    //3600 refers to 1 hour
    
    ?>
    

    因此,您将两个时间戳之间的差除以 3600 秒即可得到小时数。 intval 是获取一个整数值。您可以免费使用roundceilfloor

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-21
      • 2019-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多