繁体   English   中英

PHP - 两次之间的差异

[英]PHP - Difference between two times

我为慈善赛创造了一个计时系统。 我试图使用PHP找到开始时间和终结者时间之间的差异。 我不确定我是否正确记录了时间,但这是我刚录制的开始时间......

20180808180653

这是终结时间......

20180808180654

他们之间的差异大约是1小时24,但当我使用...

date('h:i:s', $finshTime-$startTime)

我得到03:24:20而不是01:34:20。

有人可以帮忙吗?

date方法接受“整数Unix时间戳”。 您提供的是秒数(在您的示例中为1 )。

$start = '20180808180653';
$end = '20180808180654';

$diff = $end - $start;
var_dump($diff);         //1

$d = date('h:i:s', $$diff);
var_dump($d);            //04:00:01

//the above is wrong. You need to try something like the code below   

$dStart = new DateTime($start);
$dEnd = new DateTime($end);
$interval = $dStart->diff($dEnd);
var_dump($interval->format('%h:%i:%s'));

我会使用看起来像这样的日期时间的字符串表示。 将整个事物转换为有意义的日期格式,如yyyy-mm-dd hh:mm:ss ,或有效的unix时间戳。

你的第一种方法并不遥远,你只需要使用strtotime功能。 我保证您可以首先对您正在使用的字符串进行准确的日期或Unix时间表示。 休息应该到位。

首先检查$ finshTime和$ startTime的类型是否为整数。
你可以使用get变量类型:

 gettype($startTime);

如果是这种情况,请尝试使用():

$diff_date = date('h:i:s', ($finshTime - $startTime) );

如果$ startTime和$ finshTime是字符串试试这个:

$diff_date = date('h:i:s', (strtotime($finshTime) - strtotime($startTime)) );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM