Как посчитать разницу между датами в минутах

Есть даты в в таком формате
2023-09-10 01:30:06
2022-07-10 02:31:07

как посчитать сколько полных минут прошло между ними ?

 

PHP:
  1. <?php
  2. $start = new DateTime(«2022-07-10 02:31:07», new DateTimeZone(‘UTC’));
  3. $end = new DateTime(«2023-09-10 01:30:06», new DateTimeZone(‘UTC’));
  4.  
  5. $interval = $start->diff($end);
  6. $minutes = ($interval->days * 24 * 60) + ($interval->h * 60) + $interval->i;
  7. print_r($minutes);
  8. $minutes = floor(($end->getTimestamp() $start->getTimestamp()) / 60);
  9. print_r($minutes);
 

PHP:
  1. $date1 = ‘2023-09-10 01:30:06’;
  2. $date2 = ‘2022-07-10 02:31:07’;
  3. $diff = (int) ((strtotime($date1) strtotime($date2))/60)
 

Добрый день!
Вспомнилось из фильма «17 мгновений весны».Там была песня «Не думай о секундах свысока».
Конечно можно игнорироать секунды при подсчёта интервала времени в минутах,
но можно их учесть, и так изменить три предлагаемых выше решения:

PHP:
  1. <?php
  2. $start = new DateTime(«2022-07-10 02:31:07», new DateTimeZone(‘UTC’));
  3. $end = new DateTime(«2023-09-10 01:30:06», new DateTimeZone(‘UTC’));
  4. $interval = $start->diff($end);
  5. $minutes = ($interval->days * 24 * 60) + ($interval->h * 60) + $interval->i + ($interval->s)/60;
  6. echo «$minutes<br>»; // 614818.98333333
  7.  
  8. $minutes = (($end->getTimestamp() $start->getTimestamp()) / 60);
  9. echo «$minutes<br>»; // 614818.98333333
  10.  
  11. $date1 = ‘2023-09-10 01:30:06’;
  12. $date2 = ‘2022-07-10 02:31:07’;
  13. $diff =  ((strtotime($date1) strtotime($date2))/60);
  14. echo «$diff<br>»; // 614818.98333333
  15.  
  16. $diff = round((strtotime($date1) strtotime($date2))/60);
  17. echo $diff; // 614819
  18. ?>

Очевидно, что результат типа float во всех случаях совдает, но если «не думать о секундах свысока» то, для его округления м.б правильнее использовать функцию round.

Удачи!

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *