Разница между двумя временами с периодами утра и вечера - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть два раза, например:

$date1 = strtotime("02/12/2019 10:10:54 am");  
     $date2 = strtotime("02/12/2019 10:11:07 pm");
     $diff = abs($date2 - $date1); 
     $years = floor($diff / (365*60*60*24)); 
     $months = floor(($diff - $years * 365*60*60*24) 
                           / (30*60*60*24));
     $days = floor(($diff - $years * 365*60*60*24 -  
        $months*30*60*60*24)/ (60*60*24)); 
    $hours = floor(($diff - $years * 365*60*60*24  
   - $months*30*60*60*24 - $days*60*60*24) 
                               / (60*60));
    $minutes = floor(($diff - $years * 365*60*60*24  
     - $months*30*60*60*24 - $days*60*60*24  
                  - $hours*60*60)/ 60);
  $seconds = floor(($diff - $years * 365*60*60*24  
 - $months*30*60*60*24 - $days*60*60*24 
        - $hours*60*60 - $minutes*60));
  printf(" %d days, %d hours, "
 . "%d minutes, %d seconds", 
         $days, $hours, $minutes, $seconds); 

Я хочу вычислить разницу между ними, но она не работает.

1 Ответ

0 голосов
/ 12 февраля 2019

Это намного проще с классом DateTime, который имеет метод diff, который создает объект DateInterval, который может выводитьразница в любом формате, который вам нравится:

$date1 = new DateTime("02/12/2019 10:10:54 am"); 
$date2 = new DateTime("02/12/2019 10:11:07 pm");
$diff = $date1->diff($date2);
echo $diff->format('%y years, %m months, %d days, %h hours, %i minutes and %s seconds');

Вывод:

0 years, 0 months, 0 days, 12 hours, 0 minutes and 13 seconds

Демонстрация на 3v4l.org

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...