Как рассчитать в PHP разницу в секундах между 2 разами (не датами) и просто разами. Laravel // PHP // Углерод - PullRequest
0 голосов
/ 15 апреля 2020

Вот пример, чтобы прояснить проблему. Оба приведенных ниже примера дают неправильную разницу:

// 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, чтобы вернуть разницу в 2 секунды, и 00:00:01 по сравнению с 23:59:59.

Ответы [ 2 ]

4 голосов
/ 15 апреля 2020

К сожалению, вам нужно будет преобразовать их в datetime. Как php узнать, что 23:59:59 и 00:00:01 не происходят в один и тот же день?

0 голосов
/ 15 апреля 2020

Что вам нужно сделать, это назначить обе переменные и посмотреть, будет ли второй раз раньше первого. Если так, добавьте день. Затем проверьте разницу:

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

$date2->diffInSeconds($date1); // 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...