如何在 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:59
与 00:00:01
相比 return 2 秒的差异,以及
00:00:01
与 23: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
这里举个例子来说明问题。下面两个例子都给出了错误的区别:
// 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:59
与 00:00:01
相比 return 2 秒的差异,以及
00:00:01
与 23: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