【问题标题】:how to get time difference between two time in php如何在php中获取两个时间之间的时差
【发布时间】:2014-11-09 13:57:47
【问题描述】:

我有两次。我想得到秒之间的时差,假设有两个时间 time1 = 4:20 和 time2 =20:10 现在我想得到它们之间的秒差。

我这里没有日期参数,请不要将帖子标记为重复:Getting time difference between two times in PHP

还有一天,所以我的情况不同

【问题讨论】:

  • 这与您提出的问题有何不同?
  • 你这是什么意思?您有两次要查找差异的字符串形式。这与标记为重复的问题相同。
  • 还有一天:在哪里?

标签: php time


【解决方案1】:
$time1 = strtotime('01:30:00');
$time2 = strtotime('02:20:00');

$time_def = ($time2-$time1)/60;

echo 'Minutes:'.$time_def;

【讨论】:

    【解决方案2】:

    此功能适用于MM:SSHH:MM:SS 格式:

    function TimeToSec($time) {
        $sec = 0;
        foreach (array_reverse(explode(':', $time)) as $k => $v) $sec += pow(60, $k) * $v;
        return $sec;
    }
    

    要计算差异,请使用:

    echo TimeToSec('20:10') - TimeToSec('4:20');
    

    demo

    【讨论】:

      【解决方案3】:

      如果 4:20 中的 4 是分钟,20 是秒:

      function minutesAndSecondsToSeconds($minutesAndSeconds) {
          list($minutes, $seconds) = explode(':', $minutesAndSeconds);
          return $minutes * 60 + $seconds;
      }
      
      echo minutesAndSecondsToSeconds('20:10') - minutesAndSecondsToSeconds('4:20');
      

      小时数:

      function timeToSeconds($time) {
          list($hours, $minutes, $seconds) = explode(':', $time);
          return $hours * 3600 + $minutes * 60 + $seconds;
      }
      
      echo timeToSeconds('3:20:10') - timeToSeconds('1:20:00');
      

      或者简单地使用 strtotime,它应该按照此处的说明工作:Getting time difference between two times in PHP

      【讨论】:

      • 如果还包括小时数
      • 如果包括小时数,那么您的问题与stackoverflow.com/questions/13928021/… 相同,因此您可以使用 strtotime 或与我的答案相同的逻辑,只需在列表中添加 $hours 并在结果中添加 $hours * 3600。这是一些非常基本的算法,如果您尝试了解此功能,您可以轻松适应。
      猜你喜欢
      • 2021-07-31
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 2012-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-18
      相关资源
      最近更新 更多