【问题标题】:PHP difference between two times [duplicate]两次之间的PHP差异[重复]
【发布时间】:2016-04-01 21:27:48
【问题描述】:

我想找出两次之间的差异。我只有时间存储在数据库中。我没有存储日期。 注意:时间为字符串格式。

案例一:

 Starting time : 06:18:09
 Ending time :  06:18:45

案例2:

Starting time : 06:03:35    
Ending time 06:18:04

案例 3:[此案例无效]

Starting time : 23:44:56    
Ending time : 00:45:43

我正在使用此代码在几秒钟内找到。但不适合我。

$datetime1 = date_create($a);
  $datetime2 = date_create($b);
  $interval = date_diff($datetime1, $datetime2);
 $min=$interval->format('%s');

有什么帮助吗?

谢谢!

【问题讨论】:

标签: php date


【解决方案1】:

第一个冒号的子串去掉标签,然后用剩下的时间戳进行解析和减法。

使用 PHP 的strtotime 方法将时间作为字符串转换为长整数,然后将两者相减以求出以秒为单位的差异。此时您将获得一个数字,然后您可以用它做任何事情。

$datetime1 = substr($datetime1, strpos($datetime1, ":"));
$time1 = strtotime($datetime1);

然后可以使用date方法将时间差转换成新的字符串输出。

见:

【讨论】:

  • 是的!我试过你的方法。但是对于这个开始时间:23:48:02 结束时间:00:15:12 不起作用。谢谢!
  • 它不会工作,因为有溢出。检查第二次是否小于第一次,如果是,则将 24 小时的时间加到第二次。
  • 是的。我还认为从第二次开始添加 24 小时少于第一次。再次感谢您,先生!
  • 从 00:23 错误中减去 23:00
猜你喜欢
  • 2014-05-14
  • 2011-06-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-09
  • 2014-10-23
  • 1970-01-01
  • 2012-12-05
  • 1970-01-01
相关资源
最近更新 更多