【问题标题】:Duration between two times in PHP MySQLPHP MySQL中两次之间的持续时间
【发布时间】:2023-03-25 13:20:01
【问题描述】:

我的一个 mysql 表中有 5 个字段。其中 3 个是日期、时间 1 和时间 2。 date 是 DATE 数据类型,time1 和 time2 是 TIME 数据类型。我想计算 time1 和 time2 之间的间隔,并显示在 Internet 浏览器中。我在PHP中尝试如下,但没有成功。

$start_time = strtotime($row['time1']);
$end_time = strtotime($row['time2']);
$interval = $end_time - $start_time;

我是否必须在一个字段中组合日期和时间并存储为时间戳?

谢谢。

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    你可以试试这样的:

       $datetime1 = date_create($date_1);
        $datetime2 = date_create($date_2);
    
        $interval = date_diff($datetime1, $datetime2);   
        $interval->format($differenceFormat);
    

    参考 :http://php.net/manual/en/function.date-diff.php

    【讨论】:

    • 感谢您的回复。 $date_1 必须是时间戳?它不能像“08:44:45”不是吗?所以我必须结合日期和时间。
    【解决方案2】:

    你也可以使用 DateTime 类试试这个

    $date_time1 = new DateTime('09:00:59');
    $date_time2 = new DateTime('09:01:00');
    $interval = $date_time1->diff($date_time2);
    $interval->format('%s seconds(s)');
    

    【讨论】:

      【解决方案3】:

      $start_time = strtotime($row['time1']);
      $end_time = strtotime($row['time2']);
      $ts1 = strtotime(str_replace('/', '-', $start_time));
      $ts2 = strtotime(str_replace('/', '-', $end_time));
      $diff = abs($ts1 - $ts2) / 3600;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-23
        • 2023-03-25
        • 1970-01-01
        相关资源
        最近更新 更多