如何找到两个时间之间的差异? [复制]
Posted
技术标签:
【中文标题】如何找到两个时间之间的差异? [复制]【英文标题】:How to find difference between two time? [duplicate] 【发布时间】:2016-12-31 04:21:29 【问题描述】:我有一个分配了值日期类型的 Two 变量。现在我想找出这两个变量值的差异。
$d1='2016-08-24 12:22:13';
$d2='2016-08-24 12:22:30';
d2-d1
相差 17 秒。如何在php中找到它?
【问题讨论】:
strtotime()
和 -
【参考方案1】:
// Instantiate a DateTime
$datetimefirst = new DateTime('2016-08-24 12:20:00');
$datetimesecond = new DateTime('2016-08-24 12:34:00');
//calculate the difference
$difference = $datetimefirst->diff($datetimesecond);
//format the Output
echo $difference->format('%Y-%m-%d %H:%i:%s');
reference
DateTime 类: 此类的行为与 DateTimeImmutable 相同,只是在调用
DateTime::modify()
等修改方法时会修改对象本身。
【讨论】:
欢迎来到 Stack Overflow!虽然这段代码 sn-p 可以解决问题,但包含 explanation 确实有助于提高帖子的质量。请记住,您正在为将来的读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要用解释性 cmets 挤满你的代码,因为这会降低代码和解释的可读性! 我添加了评论和参考,它在 PHP 5.5.11 版本中工作【参考方案2】:这是解决方案,
<?php
$d1='2016-08-24 12:22:13';
$d2='2016-08-24 12:22:30';
$diff=strtotime($d2)-strtotime($d1);
echo $diff;
?>
【讨论】:
【参考方案3】:要获取两个日期之间的差异,您必须先将其转换为时间戳并从那里获取差异。
$d1='2016-08-24 12:22:13';
$d2='2016-08-24 12:22:30';
$diff=abs(strtotime($d2)-strtotime($d1));
echo "Diff ".date('H',$diff)." hours ".date('i',$diff)." minutes ".date('s',$diff)." Seconds";
这里我使用了 abs() 来转换成差值的正值。
【讨论】:
以上是关于如何找到两个时间之间的差异? [复制]的主要内容,如果未能解决你的问题,请参考以下文章