如何在 PHP 中计算 2 次(不是日期时间)之间的秒差。 Laravel // PHP // 碳

How to calculate in PHP the difference in seconds between 2 times (not datetimes) just times. Laravel // PHP // Carbon

这里举个例子来说明问题。下面两个例子都给出了错误的区别:

// gives 86398 while the correct is 2sec
$diff_in_sec = strtotime('23:59:59') - strtotime('00:00:01'); 

// again gives 86398 while the correct is 2sec.
$diff_in_sec = Carbon::parse('00:00:01')->diffInSeconds(Carbon::parse('23:59:59')); 

我想要的是 23:59:5900:00:01 相比 return 2 秒的差异,以及 00:00:0123:59:59 相比。

不幸的是,您需要将它们转换为日期时间。 php 怎么知道 23:59:59 和 00:00:01 不是在同一天发生的?

您需要做的是将两者都分配给变量,并查看第二次是否在第一次之前。如果是这样,请添加一天。然后查看差异:

$date1 = Carbon::parse('23:59:59');
$date2 = Carbon::parse('00:00:01');
if($date2->lt($date1)) {
   $date2->addDay();
}

$date2->diffInSeconds($date1); // 2