【php常用公共函数】php获取指定时间段相差几小时,几分钟,几秒

实现代码

php 复制代码
<?php
function diffTime($datetime1, $datetime2)
{
    // 确保 $datetime1 总是小于或等于 $datetime2
    if (strtotime($datetime1) > strtotime($datetime2)) {
        $tmp = $datetime2;
        $datetime2 = $datetime1;
        $datetime1 = $tmp;
    }

    // 转换为时间戳
    $timestamp1 = strtotime($datetime1);
    $timestamp2 = strtotime($datetime2);

    // 计算时间差(秒)
    $difference = $timestamp2 - $timestamp1;

    // 计算小时、分钟和秒
    $hours = floor($difference / 3600);
    $minutes = floor(($difference % 3600) / 60);
    $seconds = $difference % 60;

    return array('hour' => $hours, 'minute' => $minutes, 'second' => $seconds);
}

// 示例用法
$datetime1 = '2023-10-01 12:30:15';
$datetime2 = '2023-10-02 15:45:40';

$result = diffTime($datetime1, $datetime2);
print_r($result);
?>

输出结果

27 小时 15 分钟 25 秒

代码解释

  1. 确保时间顺序:首先确保 datetime1 总是小于或等于 datetime2。
  2. 转换为时间戳:使用 strtotime 函数将日期时间字符串转换为时间戳。
  3. 计算时间差:计算两个时间戳之间的差值(以秒为单位)。
  4. 计算小时和分钟:
    使用 floor 函数将总秒数除以 3600(每小时的秒数)得到小时数。
    使用取模运算 % 和 floor 函数计算剩余的分钟数。
    再次使用取模运算 % 计算剩余的秒数。
  5. 返回结果:返回包含小时和分钟差异的数组。
相关推荐
ComputerInBook2 分钟前
C++ 中的 lambda 表达式
开发语言·c++·lambda表达式·匿名函数
ZC跨境爬虫17 分钟前
跟着 MDN 学 HTML day_52:(深入 XPathExpression 接口)
开发语言·前端·javascript·ui·html·音视频
笔夏23 分钟前
【安卓学习之FloatingActionButton】按钮太小
android·学习
yuanpan33 分钟前
Python + Selenium 浏览器自动化测试与网页自动登录
开发语言·python·selenium
Wy_编程34 分钟前
Go语言中的指针
开发语言·后端·golang
不想写代码的星星1 小时前
C++协程从入门到放弃?不,是从入门到手搓调度器
开发语言·c++
lolo大魔王1 小时前
Go语言数据库操作之GORM框架从入门到生产实战(完整版)
开发语言·数据库·golang
XD7429716361 小时前
科技早报晚报|2026年5月15日:无摄像头空间感知、Android 设备实验室与视频检索代理,今天更值得跟进的 3 个技术机会
android·科技·音视频·开源项目·边缘ai·开发者工具
淼淼爱喝水1 小时前
DVWA和Pikachu命令注入漏洞检测实验
安全·web安全·php·pikachu·dvwa
应用市场1 小时前
Android Verified Boot 2.0 安全启动原理详解
android·安全